簡介
java字元串類,包含了字元串的值和實現字元串相關操作的一些方法。
常用的方法
public boolean equals(Object obj)
判斷當前字元串與obj的內容是否相同
public boolean equalsIgnoreCase(String str)
判斷當前字元串與str的內容是否相同,這個方法不會區分大小寫字母的區別
public int length()
返回字元串的長度,即字元的總個數
public String trim()
去掉字元串兩端的空白,包括“空格,\t,\n,\r等控制符”
public String substring(int start,int end)
根據開始和結束的位置,返回當前String的子字元串
public String substring(int start)
從開始位置開始到字元串結束,返回子字元串
public char charAt(int index)
返回指定位置的字元
public int indexOf(String str)
返回子字元串在當前字元串的位置,如果當前字元串不包含子字元串就返回-1
public String concat(String str)
返回一個字元串,內容是當前字元串與str連線而成的。
字元串連線可以簡化寫為String str = str1 + str2;結果與concat方法相同
public boolean startsWith(String str)
判斷當前字元串,是否以str開頭
public boolean endsWith(String str)
判斷當前字元串,是否以str結尾
========================================================
String str = "I am " + "Lingo!";
這樣可以獲得一個內容為"I am Lingo!"的字元串,在java里可以通過這種簡單的方式實現字元串的連線
。這裡需要注意的是,這個過程實際上生成了三個String對象,"I am "和"Lingo!"先被生成,然後用他
們再創建一個String對象str,str的內容是兩者的總和。所以,使用+進行字元串連線的時候會很耗費資
源,這個時候就需要使用另一個類StringBuffer,它的內容是可以修改的,實際上jvm內部編譯之後,“
用+進行字元串連線”也是用StringBuffer實現的。
String str = "I am " + "Lingo!";
String str = new StringBuffer("I am ").append("Lingo!").toString();
上邊兩個是等價的。
StringBuffer類還提供了許多便利的方法,對字元串進行操作
public void reverse()
反轉字元串
public void append(...)
在字元串最後添加信息
public void insert(int start,...)
在索引位置插入信息
public void delete(int start,int end)
刪除指定範圍的內容
split與replaceAll方法
public String[] split(String regex)
根據分隔設定,把字元串切割成字元串數組
public String replace(String regex,String str)
把字元串中所有與regex匹配的部分都替換成str
regex代表“正則表達式”,如果你並不清楚它的原理,很可能會出現問題。
"1,3,4".split(",")返回的結果是{"1","3","4"}這三個字元串組成的數組
"1|3|4".split("|")返回的結果卻是{"1","|","3","|","4"}五個字元串組成的數組
這個問題的原因是由於在“正則表達式”中,“|”是一個有特殊含義的字元,表示“或”,直接使用
split("|")就會把每個字元分開了。如果希望使用"|"作為分隔設定,就需要使用轉義字元。
"1|3|4".split("\\|")返回的結果就是{"1","3","4"}三個字元串組成的數組了
“\|”是正則表達式中代表"|"的專一字元,但因為在String中“\”不能單獨出現,還需要進行一次轉義
,就變成了“\\|”這種形式。
replaceAll(String regex,String str)也是這種情況