Java中StringBuffer类(StringBuffer类与String类的相互转换 、字符串反转、在字符串中插入,删除数据 、String、StringBuffer、StringBuilde)
文章目录
1 StringBuffer类
java中的String类详解
回顾String类的特点,任何String类的常量都是String对象,而且String类的常量一旦声明不可改变,如果想要改变对象的内容,改变的只是其引用的指向而已,所以为了方便字符串的修改提供了StringBuffer类。
在String中使用‘+’来进行字符串链接,但是这个操作在StringBuffer类中需要更改为append()方法public synchronized StringBuffer append(各种数据类型 b)
1.1 StringBuffer的使用
1.1.1 append()的使用
String和StringBuffer最大的区别在于:String的内容无法修改,而StringBuffer的内容可以修改,频繁的修改字符串的情况考虑使用StringBuffer。
1.1.2 String变为StringBuffer
String变为StringBuffer:利用StringBuffer的构造方法或append()方法
public class Test{
public static void main(String[] args)
{
String str="hello";
StringBuffer sb=new StringBuffer(str);
System.out.println(sb.append("World"));
}
}
1.1.3 StringBuffer变为String
public class Test{
public static void main(String[] args)
{
StringBuffer sb=new StringBuffer("HelloWord");
System.out.println(sb.toString()+"!!");
}
}
1.2 字符串反转
/**
字符串反转
public synchronized StringBuffer reverse();
*/
public class Test{
public static void main(String[] args)
{
StringBuffer sb=new StringBuffer("dcba");
System.out.println(sb.reverse());
}
}
1.3 删除指定范围的数据
/**
删除指定范围的数据
public synchronized StringBuffer delete(int start,int end);
*/
public class Test{
public static void main(String[] args)
{
StringBuffer sb=new StringBuffer("dcba");
System.out.println(sb.delete(0,2));//左闭右开
}
}
1.4 插入数据
/**
插入数据(在offset之前插入)
public synchronized StringBuffer insert(int offset,各种数据类型 b);
*/
public class Test{
public static void main(String[] args)
{
StringBuffer sb=new StringBuffer("dcba");
System.out.println(sb.insert(0,"哈哈"));
System.out.println(sb.insert(0,122));
System.out.println(sb.insert(4,'a'));
}
}
2 String、StringBuffer、StringBuilder的区别
String的内容不可修改,StringBuffer和StringBuilder的内容可以修改;
StringBuffer采用同步处理,线程安全,效率低;
StringBuilder采用异步处理,线程不安全,效率较高;