StringBuffer类复习

StringBuffer

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;//编译出错

}

}

你可能感兴趣的:(java基础)