程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JavaSE入門學習之Java常用類之StringBuffer類和StringBuilder類

JavaSE入門學習之Java常用類之StringBuffer類和StringBuilder類

編輯:JAVA綜合教程

JavaSE入門學習之Java常用類之StringBuffer類和StringBuilder類


一StringBuilder類

(1)認識StringBuilder類

在Java中,除了可以使用String類來存儲字符串,還可以使用StringBuilder類或StringBuffer類存儲字符串,在需

要頻繁對字符串進行修改操作時使用StringBuilder的效率比String要高。

String 類具有是不可變性。如:

\

運行結果:

\

從運行結果中我們可以看到,程序運行時會額外創建一個對象,保存 "helloworld"。當頻繁操作字符串時,就會額

外產生很多臨時變量。使用StringBuilder或StringBuffer就可以避免這個問題。至於StringBuilder和StringBuffer,它們

基本相似,不同之處,StringBuffer是線程安全的,而StringBuilder則沒有實現線程安全功能,所以性能略高。因此一

般情況下,如果需要創建一個內容可變的字符串對象,應優先考慮使用StringBuilder 類。

定義和創建StringBuilder類的實例代碼:

\

運行結果: imooc

(2)StringBuilder類的常用方法

StringBuilder類提供了很多方法來操作字符串:

\

例如:在下面的示例代碼中,創建了StringBuilder對象,用來存儲字符串,並對其做了追加和插入操作。這些操

作修改了str對象的值,而沒有創建新的對象,這就是StringBuilder和 String最大的區別。

實例代碼:

\

運行結果:

\

了解了StringBuilder類,我們來嘗試完成下面的功能。

功能:將一個由英文字母組成的字符串轉換成指定格式---從右邊開始每三個字母用逗號分隔的形式。

實例代碼:
public class Test {
    public static void main(String[] args) {
	//創建一個空的StringBuilder對象
	StringBuilder str=new StringBuilder();
		
	//追加字符串
	str.append("jaewkjldfxmopzdm");
		
        //從後往前每隔三位插入逗號
	for(int i=str.length()-3;i>0;i=i-3){
    	    str.insert(i,",");
	}
     
        //將StringBuilder對象轉換為String對象並輸出
	System.out.print(str.toString());
    }
}

運行結果:

\

二StringBuffer類

(1)認識StringBuffer類

java.lang.StringBuffer代表可變的字符序列。StringBuffer和String類似,但StringBuffer可以對其字符串進行改

變。

(2)StringBuffer類的常見構造方法:

StringBuffer()

創建一個不包含字符序列的"空"的StringBuffer對象。

StringBuffer(String str)

創建一個StringBuffer對象,包含與String對象str相同的字符序列。

實例代碼:

 

public class Test{
    public static void main(String args[]){
	StringBuffer sBuffer = new StringBuffer("test");
        sBuffer.append(" String Buffer");
        System.out.println(sBuffer);  
   }
}

 

運行結果:

\

(3)StringBuffer類常用方法

1)重載方法public StringBuffer append(...)可以為該StringBuffer對象添加字符序列,返回添加後的StringBuffer對

象引用,例如:

\

2)重載方法public StringBuffer insert(...)可以為該StringBuffer對象在指定位置插入字符序列。返回修改後的該

StringBuffer對象引用,例如:

\

3)方法public StringBuffer delete(int start,int end)可以刪除從start開始到end-1為止的一段字符序列,返回修改後

的該StringBuffer對象引用。

4)和String類含義類似的方法:

\

5)方法public StringBuffer reverse()用於將字符序列逆序,返回修改後的該StringBuffer對象引用。

實例代碼:

 

public class Test{
    public static void main(String[] args){
		String s = "Mircosoft";
		char[] a = {'a','b','c'};
		StringBuffer sb1 = new StringBuffer(s);
		sb1.append('/').append("IBM").append('/').append("Sun");
		System.out.println(sb1);
		
		StringBuffer sb2 = new StringBuffer("數字");
		for(int i=0;i<=9;i++){
		    sb2.append(i);
		}
		System.out.println(sb2);
		sb2.delete(8,sb2.length()).insert(0,a);
		System.out.println(sb2);
		System.out.println(sb2.reverse());
    }
}         

 

編譯運行結果:

\

三StringBuffer類和StringBuilder類

當對字符串進行修改的時候,需要使用StringBuffer和StringBuilder類。和String類不同的是,StringBuffer和

StringBuilder類的對象能夠被多次的修改,並且不產生新的未使用對象。StringBuilder類在Java 5中被提出,它和

StringBuffer之間的最大不同在於StringBuilder的方法不是線程安全的(不能同步訪問)。由於StringBuilder相較於

StringBuffer有速度優勢,所以多數情況下建議使用StringBuilder類。然而在應用程序要求線程安全的情況下,則必須

使用StringBuffer類。

StringBuffer類支持的主要方法:

 

\ 和String類的方法類似:

 

\

\

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved