Java中StringBuffer类(StringBuffer类与String类的相互转换 、字符串反转、在字符串中插入,删除数据 、String、StringBuffer、StringBuilde)

文章目录

  • 1 StringBuffer类
    • 1.1 StringBuffer的使用
      • 1.1.1 append()的使用
      • 1.1.2 String变为StringBuffer
      • 1.1.3 StringBuffer变为String
    • 1.2 字符串反转
    • 1.3 删除指定范围的数据
    • 1.4 插入数据
  • 2 String、StringBuffer、StringBuilder的区别

1 StringBuffer类

  java中的String类详解
  回顾String类的特点,任何String类的常量都是String对象,而且String类的常量一旦声明不可改变,如果想要改变对象的内容,改变的只是其引用的指向而已,所以为了方便字符串的修改提供了StringBuffer类。
  在String中使用‘+’来进行字符串链接,但是这个操作在StringBuffer类中需要更改为append()方法
public synchronized StringBuffer append(各种数据类型 b)

1.1 StringBuffer的使用

1.1.1 append()的使用

Java中StringBuffer类(StringBuffer类与String类的相互转换 、字符串反转、在字符串中插入,删除数据 、String、StringBuffer、StringBuilde)_第1张图片
  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

调用toString方法

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的区别

  1. String的内容不可修改,StringBuffer和StringBuilder的内容可以修改;
  2. StringBuffer采用同步处理,线程安全,效率低;
  3. StringBuilder使用异步处理,线程不安全,效率较高;
  4. 在普遍场景下,推荐使用StringBuilder,当String对象使用"+"进行字符串拼接时,javac编译器会将String对象变为StringBuilder而后调用append()来修改字符串的内容减少无用空间的开辟。

你可能感兴趣的:(Java)