1. 描述:
学习了String字符串对象,String类创建的字符串是不可以修改的,也就是说,String字符串不能修改、删除或者替换字符串的某个字符,即String对象一旦创建,那么实体不可以再发生变化,但是我们在Java中有一个类StringBuffer类,该类可以创建可以修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列,比如一个StringBuffer对象调用append方法可以追加字符串序列,例如:
StringBuffer s = new StringBuffer("我喜欢");
那么,该对象s可以调用append方法追加一个字符串序列,s.append("打篮球");
2. StringBuffer类有三个构造方法:
① StringBuffer();
② StringBuffer(int size);
③ StringBuffer(String s);
使用第一个无参数的构造方法创建一个StringBuffer对象,那么分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体的字符序列的长度大于16的时候,实体的容量自动增加,以便存放所增加的字符,StringBuffer对象可以通过length()方法来获取实体中存放的字符串序列的长度,通过capacity()方法来获取当前实体的实际容量
StringBuffer sb = new StringBuffer();
sb.append("abc");
System.out.println(sb.toString()); //abc (输出StringBuffer对象的字符串表示)
System.out.println(sb.length()); //3
System.out.println(sb.capacity()); //16
使用第二种构造方法创建一个StringBuffer对象,那么可以指定分配给该对象的实体的初始容量为参数size指定的字符个数,当该对象的实体的字符序列的长度大于size的时候,实体的容量自动增加,以便存放所增加的字符
使用第三种构造方法创建一个StringBuffer对象,那么可以指定分配给该对象的实体的初始容量为参数字符字符串s的长度再额外增加16个字符
3. StringBuffer类常用的方法
(1)append方法
使用StringBuffer类append方法可以将其他的Java类型数据转化为字符串后,再追加到StringBuffer对象中
① StringBuffer append(String s) 将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
② StringBuffer append(int n) 将一个int类型转化为字符串对象之后再追加到当前的StringBuffer对象中,并返回当前StringBuffer对象的引用
③ StringBuffer append(Object o) 将一个Object对象o的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
类似的方法还有StringBuffer append(long n),StringBuffer append(double n),StringBuffer append(char c)等
(2)public char charAt(int n) 和public void setCharAt(int n,char ch);
public char charAt(int n)得到参数n指定的位置上的单个字符,当前对象实体中的字符串序列的第一个位置为0,第二个位置为 1...依次类推,并且n是非负的,且小于当前字符串序列的长度
public void setCharAt(int n,char ch)将当前字符串StringBuffer对象实体中的字符串位置n处的字符串使用参数ch指定的字符替换,并且n是非负的,且小于当前字符串序列的长度
(3)StringBuffer insert(int index, String str)
StringBuffer对象使用insert方法将参数str指定的字符串插入到参数index指定的位置,并且返回当前对象的引用
(4)public StringBuffer reverse()
StringBuffer对象使用reverse方法将对象实体中的字符翻转,并且返回当前对象的引用
类似的方法还有StringBuffer delete(int startIndex,int endIndex)删除字符串中从startIndex到endIndex-1索引的字符串,并且返回当前对象的引用
StringBuffer replace(int startIndex,int endIndex,String str)使用str指定的字符串替换字符串中从startIndex到endIndex-1索引的字符串,并且返回当前对象的引用
其中有一个类与StringBuffer类似的有StringBuilder类,两个类的方法都差不多