Java中的StringBuffer和StringBuilder类
StringBuffer和StringBuilder类都是字符串缓冲区,当需要对字符串进行修改时,可以使用StringBuffer和StringBuilder类。
与String不同的是,StringBuffer和StringBuilder类需要创建对象来使用并且该对象能够被多次修改而不会产生新的未使用的对象。
StringBuffer是线程安全的,效率比较低;StringBuilder不是线程安全的,但是由于不必频繁地加锁和解锁因而效率比较高。因此,多数情况下建议使用StringBuilder,然而在应用程序要求线程安全的前提下则必须使用StringBuffer。
StringBuffer有三种构造函数:
public StringBuffer():空参数构造函数
public StringBuffer(int capacity):设定初始容量的构造函数
public StringBuffer(String str):设定包含指定字符串的构造函数
StringBuffer和StringBuilder类中的常用方法:
返回值类型 | 方法 |
---|---|
StringBuffer | append(String str):将指定字符串追加到此字符序列 |
StringBuffer | reverse():将此字符序列用其反转形式取代(实现字符串反转) |
StringBuffer | delete(int start,int end):移除此字符序列指定子字符串中的字符 |
StringBuffer | insert(int offset,int i):将int型参数的字符串表示形式插入到此字符序列中 |
StringBuffer | replace(int start,int end,String str):使用给定的字符串去替换指定此字符序列中子字符串中的字符 |
与String类中类似的方法:
返回值类型 | 方法 |
---|---|
int | length():返回字符序列的长度 |
int | capacity():返回当前容量 |
void | ensureCapacity(int minimumCapacity):确保容量至少等于指定的最小值 |
char | charAt(int index) :返回此字符序列中指定索引处的字符 |
void | getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):将指定子字符串复制到目标数组 |
int | indexOf(String str):返回第一次出现的指定子字符串在该字符序列中的索引 |
int | indexOf(String str,int fromIndex):从指定索引处开始(自左向右),返回第一次出现的指定子字符串在该字符序列中的索引 |
int | lastIndexOf(String str):返回指定子字符串在该字符序列中最后一次出现时的索引 |
int | lastIndexOf(String str,int fromIndex):从指定索引处开始(自右向左),返回指定子字符串在该字符序列中最后一次出现时的索引 |
void | setCharAt(int index,char ch):将给定索引处的字符设置为ch |
void | setLength(int newLength):设置字符序列的长度 |
String | subString(int beginIndex):返回一个新的String, 它包含此字符序列当前所包含的字符子序列 |
String | subString(int beginIndex,int endIndex):返回一个新的String, 它包含此字符序列当前所包含的字符子序列,包含头,不包含尾 |
String | toString():返回此字符序列的字符串表示形式 |