標籤:使用 compare 空格 控制 字串數組 ref 判斷 append graph
一、String類一般字串
>>String str
>>String(char a[])方法用於將一個字元數組建立為String對象
>>String(char a[],int offset,int length)方法用於提取字元數組a中的一部分建立一個字串對象,參數offset表示開始截取字串的位置,length表示截取字串的長度
>>String(char a[] value)方法可用於分配一個新的String對象,使其表示字元數組參數中所有對象串連的結果
>>使用“+”運算子可以實現串連多個字串的功能,也可以串連多個運算子併產生一個String對象
>>使用“+”運算子也可同其他基礎資料型別 (Elementary Data Type)進行串連,將其他資料類型轉換為字串
>>使用String類的length()方法可擷取聲明的字串對象的長度
>>indexOf(String s)方法用於返回參數字串s在指定字串中首次出現的索引位置。當執行該方法時會從字串開始位置搜尋s的位置,如果沒有檢索到字串s,該方法的傳回值是-1
>>lastIndexOf(String str)方法用於返回指定字串最後一次出現的索引位置,調用過程與indexOf()相同
>>charAt(int index)方法可將指定索引位置的字元返回
>>substring(int beginIndex)方法用於擷取從指定索引位置開始截取到該字串結尾的子串
>>substring(int beginIndex,int endIndex)方法用於擷取從指定位置開始截取至某一索引位置結束的子串
>>trim()方法返回字串的副本,忽略前置空格和尾部空格
>>replace(char oldChar,char newChar)方法可將指定的字元或字串替換成新的字元或字串,如果沒有目標字串,則返回原字串
>>startsWith(String prefix)方法與endsWith(String suffix)方法用於判斷字串是否以指定的內容開始或結束,傳回值都為boolean類型
>>“==”用於比較兩個字串的地址是否相同,即使內容長度完全一致,兩個字串的地址也可能不同
>>equals(String otherstr)方法用於比較兩個字串的內容和長度,完全相同時返回true
>>equalsIgnoreCase(String otherstr)方法用於比較兩個忽略大小寫字串的內容和長度,完全相同時返回true
>>compareTo(String otherstr)方法會按照字典順序比較兩個字串。從兩個字串的第一位開始比較,如果兩個字串第一位的字元相同,則繼續向後比較,直至出現不同的字元為止。若比較到最後一位都相同(即equals(object)方法傳回值為true),則結果為0;若不同,該String對象位於參數字串之前,則比較結果為一個負整數,反之則為一個正整數
>>toLowerCase()方法用於將字串轉換為小寫
>>toUpperCase()方法用於將字串轉換為大寫
>>split(String sign)方法可以使字串按指定的分割字元或字串對內容進行分割,並將分割後的結果存放在字串數組中
>>split(String sign,int limit)方法作用與上相同,但可以限定拆分次數
二、日期和時間字串格式化
常用的日期格式化轉換符
| 轉換符 |
說明 |
樣本 |
| %te |
一個月中的某一天(1~31) |
2 |
| %tb |
指定語言環境的月份簡稱 |
Feb(英文)、二月(中文) |
| %tB |
指定語言環境的月份全程 |
February(英文)、二月(中文) |
| %tA |
指定語言環境的星期幾全稱 |
Monday(英文)、星期一(中文) |
| %ta |
指定語言環境的星期幾簡稱 |
Mon(英文)、星期一(中文) |
| %tc |
包括全部日期和時間資訊 |
星期二 三月 25 13:37:22 CST 2008 |
| %tY |
4位年份 |
2008 |
| %tj |
一年中的第幾天(001~366) |
085 |
| %tm |
月份 |
03 |
| %td |
一個月中的第幾天(01~31) |
02 |
| %ty |
2位年份 |
08 |
時間格式化轉換符
| 轉換符 |
說明 |
樣本 |
| %tH |
2位元字的24時制的小時(00~23) |
14 |
| %tI |
2位元字的12時制的小時(01~12) |
05 |
| %tk |
2位元字的24時制的小時(0~23) |
5 |
| %tl |
2位元字的12時制的小時(1~12) |
10 |
| %tM |
2位元字的分鐘(00~59) |
05 |
| %tS |
2位元字的秒數(00~60) |
12 |
| %tL |
3位元字的毫秒數(000~999) |
920 |
| %tN |
9位元字的微妙數(000000000~999999999) |
062000000 |
| %tp |
指定語言環境的上午或下午標記 |
下午(中文)、pm(英文) |
| %tz |
相對於GMT RFC 82 格式的數字時區位移量 |
+0800 |
| %tZ |
時區縮寫形式的字串 |
CST |
| %ts |
1970-01-01 00:00:00 至現在經過的秒數 |
1206426646 |
| %tQ |
1970-01-01 00:00:00 至現在經過的毫秒數 |
1206412131231 |
常見的日期和時間組合的格式
| 轉換符 |
說明 |
樣本 |
| %tF |
“年-月-日”格式(4位年份) |
2008-03-25 |
| %tD |
“月/日/年”格式(2位年份) |
03/25/08 |
| %tc |
全部日期和時間資訊 |
星期二 三月 25 15:20:00 CST 2008 |
| %tr |
“時:分:秒 PM(AM)”格式(12時制) |
03:22:06 下午 |
| %tT |
“時:分:秒”格式(24時制) |
15:23:50 |
| %tR |
“時:分”格式(24時制) |
15:25 |
三、常規類型格式化
常規轉換符
| 轉換符 |
說明 |
樣本 |
| %b、%B |
結果被格式化為布爾類型 |
true |
| %h、%H |
結果被格式化為散步碼 |
A05A5198 |
| %s、%S |
結果被格式化為字串類型 |
"abcd" |
| %c、%C |
結果被格式化為字元類型 |
‘a‘ |
| %d |
結果被格式化為十進位整數 |
40 |
| %o |
結果被格式化為八進位整數 |
11 |
| %x、%X |
結果被格式化為十六進位整數 |
4b1 |
| %e |
結果被格式化為用電腦科學計數法表示的十進位數 |
1.700000e+01 |
| %a |
結果被格式化為帶有效位元和指數的十六進位浮點值 |
0X1.C000000000001P4 |
| %n |
結果為特於與平台的行分隔字元 |
|
| %% |
結果為字面值% |
% |
四、Regex
>>Regex通常被用於判斷語句是否滿足某一格式。Regex是含有一些具有特殊意義字元的字串,這些特殊字元統稱為Regex的元字元
Regex中的元字元
| 元字元 |
Regex中的寫法 |
意義 |
| . |
. |
代表任意一個字元 |
| \d |
\\d |
代表0~9的任何一個數字 |
| \D |
\\D |
代表任何一個非數字字元 |
| \s |
\\s |
代表空白字元,如‘\t‘、‘\n‘ |
| \S |
\\S |
代表非空白字元 |
| \w |
\\w |
代表可用作標識符的字元,但不包括“$” |
| \W |
\\W |
代表不可用作標識符的字元 |
| \p{Lower} |
\\p{Lower} |
代表小寫字母a~z |
| \p{Upper} |
\\p{Upper} |
代表大寫字母A~Z |
| \p{ASCII} |
\\p{ASCII} |
ASCII字元 |
| \P{Alpha} |
\\P{Alpha} |
字母字元 |
| \p{Digit} |
\\p{Digit} |
十進位數字,即0~9 |
| \p{Alnum} |
\\p{Alnum} |
數字或字母字元 |
| \p{Punct} |
\\p{Punct} |
標點符號:!"#$%&‘()*+,-;:<=>[email protected][\]^_`{|}~ |
| \p{Graph} |
\\p{Graph} |
可見字元:[\p{Alnum}\p{Punct}] |
| \p{Print} |
\\p{Print} |
可列印字元:[\p{Graph}\x20] |
| \p{Blank} |
\\p{Blank} |
空格或定位字元:[\t] |
| \p{Cntrl} |
\\p{Cntrl} |
控制字元:[\x00-\x1F\x7F] |
>>限定修飾符用於限定Regex中元字元出現的次數
限定修飾符
| 限定修飾符 |
意義 |
樣本 |
| ? |
0次或1次 |
A? |
| * |
0次或多次 |
A* |
| + |
1次或多次 |
A+ |
| {n} |
正好出現n次 |
A{2} |
| {n,} |
至少出現n次 |
A{3,} |
| {n,m} |
出現n~m次 |
A{2,6} |
>>使用matches(String regex)方法來進行Regex匹配
五、StringBuilder類
>String類建立的對象,其長度是固定的,內容不能被改變和編譯,雖然使用“+”可以達到附加新字元或字串的目的,但“+”會產生一個新的String執行個體,在記憶體中建立新的字串對象。為解決這個問題,系統引入了可變的字元序列StringBuilder類,大大提高了頻繁增加字串的效率
>>append(content)方法用於向字串產生器中追加內容,可實現接受任何類型的資料
>>insert(int offset arg)方法用於向字串產生器指定位置插入資料內容
>>delete(int start,int end)方法用於移除指定位置開始到某一位置結束的字串
Java學習筆記 02