1 String類的常用方法
(1) 字符串str中字符的索引從0開始,範圍爲0到str.length()-1
(2) 使用indexOf進行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回-1
(3) 使用substring(beginIndex ,endIndex) 進行字符串截取時,包括beginIndex位置的字符,不包括endIndex位置的字符
(4) 每次new一個字符串就是產生一個新的對象,即便兩個字符串的內容相同,使用 ”==”比較時也爲”false”;如果只需比較內容是否相同,應使用”equals()”方法,若忽略大小寫則用“equalsIgnoreCase()”方法。
2 字符串生成器StringBuilder類
(2) 在Java中,除了可以使用 String 類來存儲字符串,還可以使用 StringBuilder 類或 StringBuffer 類存儲字符串,那麼它們之間有什麼區別呢?使用String類時,當頻繁操作字符串時,就會額外產生很多臨時變量,使用 StringBuilder 或 StringBuffer 就可以避免這個問題。至於 StringBuilder 和StringBuffer ,它們基本相似,不同之處,StringBuffer 是線程安全的,而 StringBuilder 則沒有實現線程安全功能,所以性能略高。因此一般情況下,如果需要創建一個內容可變的字符串對象,應優先考慮使用 StringBuilder 類。
(3) StringBuilder類創建對象的方式:
StringBuilder str = new StringBuilder("captain");
System.out.println(str);
(4) StringBuilder類的常用方法程序示例:
package captain;
public class StringBuilderDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//String類空字符串修改10000次執行的時間。
String str = "";
long startTime = System.currentTimeMillis();
for(int i = 0; i < 10000; i++)
str = str + i;
long endTime = System.currentTimeMillis();
long time = endTime - startTime;
System.out.println("String類修改字符串消耗的時間爲:" + time);
//StringBuilder類空字符串修改10000次執行的時間。
StringBuilder strb = new StringBuilder("");
startTime = System.currentTimeMillis();
for(int j = 0; j < 10000; j++)
strb.append(j);
endTime = System.currentTimeMillis();
time = endTime - startTime;
System.out.println("StringBuilder類修改字符串消耗的時間爲:" + time);
}
}
StringBuilder類修改字符串消耗的時間爲:1
通過這一示例可以看出,執行的時間差距很大。因此,如果在程序中頻繁地附加字符串,建議使用StringBuilder類,它的長度可以動態增長,而不會像String類一樣會每次創建新的對象。故而對於字符串的修改操作,StringBuilder類在時間性能和系統消耗方面都要大幅優於String類。