StringBuffer类:字符缓冲区
StringBuffer类和String类最大的区别在于它的内容和长度是可以改变额。StringBuffer类似一个字符串容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象
StringBuffer类常用方法
StringBuffer append(char c)--------------添加参数到StringBuffer对象中
StringBuffer insert(int offset,String str)--------将字符串中的offset位置插入字符串str
StringBuffer deleteChar(int index)---------------删除此序列指定位置的字符
StringBuffer delete(int start,int end) 删除StringBuffer对象中指定范围的字符或字符串序列
StringBuffer replace(int start,int end,String s)-----------在StringBuffer对象中替换指定的字符或字符串序列
Void setCharAt(int index,char ch)------------------修改指定位置index处的字符序列
String toString()------------------------返回StringBuffer缓冲区中的字符串
StringBuffer reverse()-----------------将此字符序列用起反转形式取代
StringBuffer类常用方法的应用
package pan;
class Example{
public static void main(String[] args) {
System.out.println("添加---------------------------");
add();
System.out.println("删除---------------------------");
remove();
System.out.println("修改---------------------------");
alter();
}
public static void add() {
StringBuffer sb = new StringBuffer();//定义一个字符串缓冲区
sb.append("balalala");//添加一个字符串
System.out.println("append添加结果:"+sb);
sb.insert(2, "123");//在指定位置插入字符串"123"
System.out.println("插入字符串的结果:"+sb);
}
public static void remove() {
StringBuffer sb = new StringBuffer("balalaxiaomoxian");
sb.delete(1, 5);//删除指定范围内的字符串
System.out.println("删除指定范围内字符串的结果:"+sb);
sb.deleteCharAt(2);//指定位置删除
System.out.println("指定位置删除结果:"+sb);
sb.delete(0, sb.length());//清空缓冲区
System.out.println("清空缓冲区届结果:"+sb);
}
public static void alter() {
StringBuffer sb = new StringBuffer("balalxiaomoxian");
sb.setCharAt(1, 'p');//修改指定位置的字符
System.out.println("修改指定位置字符结果"+sb);
sb.replace(1, 3, "qq");//替换指定位置的字符或者字符串
System.out.println("替换指定位置字符(串)结果是:"+sb);
sb.reverse();//将此序列用翻转形式取代
System.out.println("字符串翻转结果:"+sb);
}
}
StringBuffer类和String类对比
1. String类表示字符串常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度可以随时修改。在操作字符串是,如果该字符串仅用于表示数据类型,则使用String即可。但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类
2. String类中覆盖了Object类中的equals()方法,而StringBuffer类没有覆盖Object类中equals()方法
package pan;
class Example{
public static void main(String[] args) {
String str1 = new String("balala");
String str2 = new String("balala");
System.out.println(str1.equals(str2));//结果为true;
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
System.out.println(sb1.equals(sb2));//结果为false;
}
}
3. String对象可以用”+”进行链接而StringBuffer类对象不能
package pan;
class Example{
public static void main(String[] args) {
String str1 = new String("a");
String str2 = new String("b");
String str3 = str1+str2;
System.out.println(str3);//正常输出
StringBuffer sb1 = new StringBuffer("a");
StringBuffer sb2 = new StringBuffer("b");
StringBuffer sb3 = sb1+sb2;//编译出错
}
}