0x01:在Java中,形如"9.732","A String","你好",這樣的字符串,其實都是常量。
(1)String的構造函數
String()
String(String original)
String(char value[])
String(char value[], int offset, int count)
String(int[] codePoints, int offset, int count)//unicode編碼
String(byte ascii[], int hibyte, int offset, int count)
String(byte ascii[], int hibyte)
String(byte bytes[], int offset, int length, String charsetName)
String(byte bytes[], int offset, int length, Charset charset)
String(byte bytes[], String charsetName)
String(byte bytes[], Charset charset)
String(byte bytes[], int offset, int length)
String(byte bytes[])
String(StringBuffer buffer)
String(StringBuilder builder)
String str1,str2;
str1="We are students";
str2="We are students";
此時str1與str2具有相同的字符串常量,因此具有相同的實體。
0x02:Java常用的方法
(1)使用"+"運算符可實現連接多個字符串的功能,最終返回一個String對象
(2)當"+"連接其他的數據類型的時候,其他類型的數據會調用toString()方法將其轉化成String類型后拼接
(3)通過String對象的length()方法可以獲得str字符長度
(4)使用indexOf(str)與lastIndexOf(str)可以分別找出字符串在原字符串中的索引(第一個與最后一個,返回值小于0則不存在)
(5)charAt(index)獲得指定位置的字符
(6)substring(beginIndex)與substring(beginIndex,endIndex)截取字符串
(7)trim()去除頭部和尾部的空格
(8)replace(oldStr,newStr)替換字符串中的所有的指定字符串
(9)判斷字符串的開始與結尾startsWith(str),endsWith(str)
(10)equals(str)與equalsIgnoreCase(str)判斷兩個字符串是否相等
(11)compareTo(str),按照字典順序比較兩個字符串,最終返回整數值
(12)toLowerCase()與toUpperCase()將字母大小寫轉換一下
(13)split(sign)與split(sign,limit)將字符串分割并返回拆分后的字符串數組
(14)String類的靜態方法String.format(String format,Object ...args)與String.format(Local local,String format, Object ... args)// {local 代表著語言環境}
0x03:Java格式化字符串
Date date=new Date();
Sting s=String.format("%te",date);
日期格式化
Date date=new Date();
String str=String.format("%te",date);
轉換符 | 說明 |
---|---|
%te | 一個月中的某一天(1-31) |
%tb | 指定環境的月份簡稱 |
%tB | 指定環境月份的全稱 |
%ta | 指定環境星期的簡稱 |
%tA | 指定環境星期的全稱 |
%tc | 全部日期和時間信息 |
%ty | 兩位年份 |
%tY | 四位年份 |
%tm | 月份 |
%td | 一個月中的第幾天(01-31) |
%tj | 一年中的第幾天(001-366) |
時間格式化
轉換符 | 說明 |
---|---|
%tH | 2位的24小時制小時(00-23) |
%tk | 24小時制時(0-23) |
%tI | 12小時制小時(01-12) |
%tl | 12小時制小時(1-12) |
%tp | 上午/下午(am/pm) |
%tM | 分鐘(00-59) |
%tS | 秒(00-60) |
%tL | 毫秒(000-999) |
%tN | 微秒(000000000-999999999) |
%tz | 相對與GMT格式的數字偏移量(0800) |
%tZ | 時區縮寫形式的字符串(CST) |
%ts | 1970到現在的秒數 |
%tQ | 1970到現在的毫秒數 |
時間日期組合
轉換符 | 說明 |
---|---|
%tF | 年-月-日(4位年份) |
%tD | 月/日/年(2位年份) |
%tr | 時:分:秒(12小時制AM/PM) |
%tT | 時:分:秒(24小時制) |
%tR | 時:分(24小時制) |
常規格式化
轉換符 | 說明 |
---|---|
%b,%B | boolean類型 |
%h,%H | 散列碼 |
%s,%S | string |
%c,%C | char |
%d | 十進制數 |
%o | 八進制數 |
%x,%X | 十六進制數 |
%e | 十進制科學計數 |
%a | 十六進制浮點數 |
%n | 換行符 |
%% | % |
0x04:Java正則表達式
字符 | 意義 |
---|---|
. | 任意字符 |
\d | 0-9 |
\D | 非數字 |
\s | 空白符 \t,\n |
\S | 非空白符 |
\w | 可以用作標識符的字符($除外) |
\W | 不可用于標識符的字符 |
\p{Lower} | a-z |
\p{Upper} | A-Z |
\p{ASCII} | ascii字符 |
\p{Alpha} | 字母 |
\p{Digit} | 0-9 |
\p{Alnum} | 0-9與字母 |
\p{Punct} | 標點符號 |
\p{Graph} | Alnum+Punct |
\p{Print} | 可打印字符[\p{Graph}\x20] |
\p{Blank} | 空格和制表符 |
\p{Cntrl} | 控制字符 |
[^012] : 除012以外的字符
[a-c] :a,b,c任意一個
[a-zA-Z] :任意英文字母
[a-z&&[abc]] : a,b,c,交運算
[a-z&&[ ^abc]] : 除abc以外的小寫字母,差運算
限定符 | 意義 |
---|---|
? | 0次或者1次 |
* | 0次或者多次 |
+ | 1次或者多次 |
{n} | 正好n次 |
{n,} | 至少n次 |
{n,m} | 出現n-m次 |
0x05:StringBuilder
(1)常用方法
append(content)//追加
insert(offset,arg)//指定位置添加
delete(start,end)//刪除start->end的字符
toString()//轉化為string