一、String
字串是常量,建立之後不可被改變
字串字面值儲存在字串池中,可以共享
String s = "Hello";產生一個物件,字串池中儲存
String s = new String("Hello");產生兩個物件,堆、池各儲存一個。
二、常用方法
public int length();返回字串長度。
public char charAt(int index);根據字串下標獲取字元。
public boolean contains(String str);判斷當前字串中是否包含str。
public char[] toCharArray();將字串轉換成字元型別的陣列。
public int indexOf(String str);查詢str首次出現的下標,存在,則返回該下標;不存在,則返回-1。
public int lastindexOf(String str);查詢字串在當前字串中最後一次出現的下標索引。
public String trim();去掉字串前後的空格。
public String toUpperCase();將小寫轉成大寫。toLowerCase();將大寫轉成小寫。
public boolean endsWith(String str);判斷字串是否以str結尾。
public String replace(char oldChar, char newChar);將舊字串替換成新字串。
public Sting[] split(String str);根據str做拆分。
三、StringBuffer和StringBuilder
public class demo03 {
public static void main(String[] args) {
// StringBuffer和StringBuilder一樣
StringBuffer sb = new StringBuffer();
//append
sb.append("java is nb");
System.out.println(sb);
//insert
sb.insert(0, "hahahaha ");
System.out.println(sb); //hahahaha java is nb
//replace
sb.replace(0,3,"fffff");
System.out.println(sb); //fffffahaha java is nb
//delete
sb.delete(0,5);
System.out.println(sb); //ahaha java is nb
sb.delete(0,sb.length());
System.out.println(sb.length()); //0
}
}
測試StringBuffer的效率比String高
public class demo04 {
public static void main(String[] args) {
long l = System.currentTimeMillis();
// String s = "";
// for (int i = 0; i < 99999; i++) {
// s+=i;
// }
// System.out.println(s);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 99999; i++) {
sb.append(i);
}
System.out.println(sb.toString());
long l1 = System.currentTimeMillis();
System.out.println(l1-l);
}
}