天天看點

常用類 —— StringBuffer類

StringBuffer類概述及其構造方法

StringBuffer類概述

我們如果對字元串進行拼接操作,每次拼接,都會建構一個新的String對象,既耗時,又浪費空間。而StringBuffer就可以解決這個問題

線程安全的可變字元序列

StringBuffer和String的差別

簡單地說,就是一個變量和常量的關系。StringBuffer對象的内容可以修改;而String對象一旦産生後就不可以被修改,重新指派其實是兩個對象

StringBuffer的内部實作方式和String不同,StringBuffer在進行字元串處理時,不生成新的對象,在記憶體使用上要優于String類。是以在實際使用時,如果經常需要對一個字元串進行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。

String:在String類中沒有用來改變已有字元串中的某個字元的方法,由于不能改變一個java字元串中的某個單獨字元,是以在JDK文檔中稱String類的對象是不可改變的。然而,不可改變的字元串具有一個很大的優點:編譯器可以把字元串設為共享的

StringBuffer:StringBuffer類屬于一種輔助類,可預先配置設定指定長度的記憶體塊建立一個字元串緩沖區。這樣使用StringBuffer類的append方法追加字元 比 String使用 + 操作符添加字元 到 一個已經存在的字元串後面有效率得多。因為使用 + 操作符每一次将字元添加到一個字元串中去時,字元串對象都需要尋找一個新的記憶體空間來容納更大的字元串,這無凝是一個非常消耗時間的操作。添加多個字元也就意味着要一次又一次的對字元串重新配置設定記憶體。使用StringBuffer類就避免了這個問題。

StringBuffer是線程安全的,在多線程程式中也可以很友善的進行使用,但是程式的執行效率相對來說就要稍微慢一些。

StringBuffer的常用方法

StringBuffer類中的方法要偏重于對字元串的變化例如追加、插入和删除等,這個也是StringBuffer和String類的主要差別

構造方法

public StringBuffer()

public StringBuffer(int capacity)

public StringBuffer(String str)

StringBuffer類的成員方法

添加功能

public StringBuffer append(String str)

public StringBuffer insert(int offset,String str)

删除功能

public StringBuffer deleteCharAt(int index)

public StringBuffer delete(int start,int end)

替換功能

public StringBuffer replace(int start,int end,String str)

反轉功能 public StringBuffer reverse()

截取功能

public String substring(int start)

public String substring(int start,int end)

截取功能和前面幾個功能的不同

傳回值類型是String類型,本身沒有發生改變