Java中的StringBuffer、StringBuilder和包裝器類型
1.如何使用StringBuffer類?
答:1).StringBuffer類用於表示可以修改的字符串,稱為字符串緩沖對象;
2).使用運算符的字符串將自動創建字符串緩沖對象;
例:str1 + str2的操作,實際上把str1與str2都創建成StringBuffer類對象;
2.StringBuffer類的構造方法有哪些常用的重載方式?
答:StringBuffer() 創建一個空的StringBuffer對象,默認保留16個字符的緩沖空間
StringBuffer(String str) 根據字符串str的內容創建StringBuffer對象,並默認保留16個字符的緩沖空間
StringBuffer(int capacity) 創建一個空的StringBuffer對象,緩沖空間大小由capacity指定
3.StringBuffer類有哪些常用方法?
答:*StringBuffer insert(int index, x x);
將x插入到索引為index的位置,x可以為任何類型的數據
*Int length() ;
獲得當前StringBuffer對象的長度
*Void setCharAt(int index,char ch);
使用ch 指定的新值替換index指定的位置上的字符
*String toString();
轉換為字符串形式
*StringBuffer reverse();
將當前StringBuffer對象中的字符序列倒置
*StringBuffer delete(int start, int end);
刪除當前對象中從start位置開始直到end指定的索引位置的字符序列
*StringBuffer deleteCharAt(int index);
將刪除index指定的索引處的字符
*StringBuffer replace(int start, int end, String str);
此方法使用一組字符替換另一組字符。將用替換字符串從start指定的位置開始替換,直到end指定的位置結束
4.String類和StringBuffer類有什麽區別?
答:1).在Java中一旦創建了字符串就不能直接更改,這就是字符String的不變性;
2)而StringBuffer類正是針對此問題而提供的字符可變序列;
3).StringBuffer與String是同等的類,唯一區別是可以進行更改;
5.什麽是StringBuilder?
答:1).JDK 1.5以後,提供了一個新的字符緩沖區:StringBuilder;
2).提供和StringBuffer相似的API;
3).非線程安全
6.StringBuffer和StringBuilder有什麽區別?
答:
|
StringBuffer |
StringBuilder |
線程是否安全 |
安全 |
不安全 |
效率 |
相對低 |
相對高 |
7.如何使用包裝器類(Wrapper類)?
答:1).使用基本數據類型聲明的變量,如:
int num = 10;
這裏的num只是一個變量,而不是對象;
2).在某些必須操作對象的場合,這樣的變量就不能使用了;
3).Java提供一系列包裝類,以便將基本數據類型當作對象進行操作;
4).在java.lang包中,對於每個基本數據類型都有一個相應的包裝類。
8.每個基本數據類型對應的包裝器類是什麽?
答:
基本數據類型 |
包裝類 |
boolean(布爾型) |
Boolean |
byte(字節型) |
Byte |
char(字符型) |
Character |
short(短整型) |
Short |
int(整形) |
Integer |
long(長整型) |
Long |
Float(浮點型) |
Float |
double(雙精度浮點型) |
Double |
9.如何使用valueOf方法?舉例說明
答:每個包裝類都有一個靜態的valueOf方法,用於將字符串轉換成相應包裝類的對象。
public class LangDemo{
public static void main(String[] args){
String str = “120”;
//如果轉換失敗,將會引發NumberFormatException異常
Byte objByte = Byte.valueOf(str);
Short objShort = Short.valueOf(str);
Integer objInt = Integer.valueOf(str);
Long objLong = Long.valueOf(str);
System.out.println(objByte);
System.out.println(objShort);
System.out.println(objInt);
System.out.println(objLong);
}
}
10.什麽是包裝類的parseXxx方法?有哪些註意事項?舉例說明
答:除了Boolean類和Character類以外,其它的包裝類都有靜態的parseXxx方法(Xxx指代具體的數據類型),用於將字符串轉換成相對應的基本數據類型值。
Public class ParseTest{
public static void main(String[] args){
String str = “116”;
//分別調用各個包裝器類的paseXxx方法對字符串進行轉換,如果轉換失敗,將報異常
int i = Integer.paeseInt(str);
short s = Short.parseShort(str);
byte b = Byte.parseShort(str);
long l = Long.parseLong(str);
float f = Float.parseFloat(str);
double d = Double.parseDouble(str);
System.out.println(i);
System.out.println(s);
System.out.println(b);
System.out.println(l);
System.out.println(f);
System.out.println(d);
}
}
11.Character類中有哪些常用方法?舉例說明
答:
方法原型 |
說明 |
boolean isLetter(char ch) |
判斷字符ch是否為英文字母 |
boolean isDigit(char ch) |
判斷字符ch是否為0---9之間的數字 |
boolean isUpperCase(char ch) |
判斷字符ch是否為大寫形式 |
Boolean isLowerCase(char ch) |
判斷字符ch是否為小寫形式 |
boolean isWhitespace(char ch) |
判斷字符ch是否為空格或換行符 |
註意:以上方法都是靜態方法,可以直接通過類名調用,返回值均為boolean類型,如果返回true,否則返回false。
例:
Public class CharacterDemo{
Public static void main(String[] args){
char[] charArray = {‘*’, ‘7’, ‘b’, ‘’, ‘A’};
for(int I = 0;i < charArray.length;i++){
if(Character.isDigit(charArray[i])){
System.out.println(charArray[i]) + “是一個數字。”);
}
if(Character.isLetter(charArray[i])){
System.out.println(charArray[i]) + “是一個字母。”);
}
if(Character.isWhitespace(charArray[i])){
System.out.println(charArray[i]) + “是一個空格。”);
}
if(Character.isLowerCase(charArray[i])){
System.out.println(charArray[i]) + “是小寫形式。”);
}
if(Character.isUpperCase(charArray[i])){
System.out.println(charArray[i]) + “是大寫形式。”);
}
}
}
}
12.什麽是包裝類的拆裝箱?舉例說明
答:JDK5.0以後提供了自動封解箱的操作
Public static void main(String[] args){
int x = 1;
Integer y = x;
y++; //裝箱
System.out.println(“y=” +y+ “z=” +z);
}
Java中的StringBuffer、StringBuilder和包裝器類型