當字串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類別。 和 String 類別不同的是,StringBuffer 和 StringBuilder 類別的物件能夠被多次的修改,並且不產生新的未使用物件。
StringBuffer:在使用StringBuffer 類別時,每次都會對StringBuffer 物件本身進行操作,而不是產生新的對象,所以如果需要對字串進行修改推薦使用StringBuffer。
StringBuilder:StringBuilder 類別在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在於 StringBuilder 的方法不是線程安全的(不能同步存取)。由於 StringBuilder 相較於 StringBuffer 有速度優勢,多數情況下建議使用 StringBuilder 類別。
StringBuilder使用實例:
public class RunoobTest{ public static void main(String args[]){ StringBuilder sb = new StringBuilder(10); sb.append("Runoob.."); System.out.println(sb); sb.append("!"); System.out.println(sb); sb.insert(8, "Java"); System.out.println(sb); sb.delete(5,8); System.out.println(sb); } } // 实例编译运行结果如下: // Runoob.. // Runoob..! // Runoob..Java! // RunooJava!
#然而在應用程式要求執行緒安全的情況下,則必須使用 StringBuffer 類別。 StringBuffer使用實例:
public class Test { public static void main(String args[]) { StringBuffer sBuffer = new StringBuffer("稀土掘金:"); sBuffer.append("www"); sBuffer.append(".juejin"); sBuffer.append(".cn"); System.out.println(sBuffer); } } // 实例编译运行结果如下: // 稀土掘金:www.juejin.cn
StringBuffer 方法
StringBuffer 類別支援的主要方法:
#方法描述 | |
1 | public StringBuffer append(String s),將指定的字串追加到此字元序列 |
public delete( int start, int end), 移除此序列的子字串中的字元 | |
---|---|
public insert(int offset, int i),將 int 參數的字串表示形式插入此序列中 | |
insert(int offset, String str) ,將str 參數的字串插入此序列中 | |
replace(int start, int end, String str) , 使用給定String 中的字元取代此序列的子字串中的字元 | |
#StringBuffer 類別的其他常用方法: | |
方法描述 | |
int capacity(),傳回目前容量 | |
char charAt(int index),傳回此序列中指定索引處的char 值 | |
void ensureCapacity(int minimumCapacity),確保容量至少等於指定的最小值 | |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin),將字元從此序列複製到目標字元陣列dst | |
int indexOf(String str),傳回第一次出現的指定子字串在該字串中的索引 | |
int indexOf( String str, int fromIndex),返從指定的索引處開始,傳回第一次出現的指定子字串在該字串中的索引 | |
int lastIndexOf(String str),傳回指定子字串在此字串中最後一次出現處的索引 | |
int lastIndexOf(String str, int fromIndex),傳回指定字元在此字串中最後一次出現處的索引,從指定的索引處開始進行反向搜尋 | |
int length( ),傳回長度(字元數) | |
void setCharAt(int index, char ch),將給定索引處的字元設定為ch 參數的值 |
void setLength(int newLength),設定字元序列的長度
12
CharSequence subSequence(int start, int end),傳回一個新的字元序列,該字元序列是此序列的子序列
13
String substring(int start ),傳回一個新的String,它包含此字元序列目前所包含的字元子序列
#14
###String substring(int start, int end),並返回一個新的String,它包含此序列目前所包含的字元子序列############15######String toString(),傳回此序列中資料的字串表示形式###############方法實例:\color{red}{方法實例:}方法實例:#########reverse() 方法實例###:# ##public synchronized StringBuffer reverse()###描述:######將此字元序列以其反轉形式取代。 ######參數:######無######傳回值:######字元序列的反轉形式。 ###
public class Test { public static void main(String args[]) { String string="niJeuJ"; String reverse = new StringBuffer(string).reverse().toString(); System.out.println("字符串反转前:"+string); System.out.println("字符串反转后:"+reverse); } } // 以上程序执行结果为: // 字符串反转前:niJeuJ // 字符串反转后:JueJin
以上是Java中StringBuffer和StringBuilder怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!