1、相同點:String、StringBuffer、StringBuilder三個類都是用來封裝字符串的
2、不同點:
- String類是不可變類,即一旦一個String對象被創建後,包含在這個對象中的字符串是不可以改變的
- StringBuffer對象代表一個字符序列可變的字符串
- StringBuilder也代表一個可變字符串對象,與StringBuffer相比,StringBuilder是線程不安全的,而StringBuffer是線程安全的
3、方法:
(1)String類中主要的方法:
-
char charAt(int index):獲取字符串中indext位置的字符
-
String concat(String str):將該String對象與str連接在一起
-
String substring(int beginIndex):獲取從beginIndex位置開始到結束的子字符串
-
String substring(int beginIndex,int endIndex):獲取從beginIndex位置到endIndex位置的字符串
-
char[] toCharArray():將String對象轉換成char數組
-
String toLowerCase():將字符串全部變爲小寫
-
String toUpperCase():將字符串全部變爲大寫
(2)StringBuffer、StringBuilder中的主要方法:
- append():添加字符序列
- insert():插入字符串
- replace():替換字符串
- delete():刪除字符
- reverse():反轉字符串
- seLength():修改字符序列長度
- capacity():獲取StringBuffer、StringBuilder對象的容量
public class ScannerTest {
public static void main(String[] args){
StringBuffer sb=new StringBuffer();
//添加
sb.append("hello");
System.out.println(sb);
//插入
sb.insert(0, "China ");
System.out.println(sb);
//替換
sb.replace(5, 6, ",");
System.out.println(sb);
//刪除
sb.delete(5, 6);
System.out.println(sb);
//反轉
sb.reverse();
System.out.println(sb);
System.out.println(sb.length());
System.out.println(sb.capacity());
//修改長度,只保留長度之前的數值
sb.setLength(5);
System.out.println(sb);
}
}
/*輸出結果:
hello
China hello
China,hello
Chinahello
ollehanihC
10
16
olleh
*/
(3)一旦StringBuffer、StringBuilder生成了最後想要的字符串,就可以調用它的toString()方法將其變爲一個String對象
在上述代碼後加入這兩句,將sb轉換爲str,這個str無法改變。
String str=sb.toString();
System.out.println(str);