1. 程式人生 > >Java中的StringBuffer、StringBuilder和包裝器類型

Java中的StringBuffer、StringBuilder和包裝器類型

相對 字母 失敗 這樣的 構造方法 stat float cin 序列

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和包裝器類型