Java中的常用类-StingBuffer类

Java中的常用类-StingBuffer类

现代的程序开发中需要依附于其所在的平台的支持,平台支持的功能越来越完善,开发也就简单。Java拥有着世界上最庞大的来发支持,除了丰富的第三方开发仓库外,JDK自身也提供了丰富的类库支持供开发者使用。

字符串实现了一种方便的数据存储结构,对于字符串Java也提供了多种支持,讲解StringBuffer、StringBuider、String三种的区别与联系。

1.StingBuffer类

在项目开发中String是一个必不可少的工具类,但是String类自身有一个最大的缺陷:内容一旦声明则不可改变。所以JDK中为了方便用户修改字符串的内容提供了StingBuffer类。
StingBuffer类并不像String类那样可以直接通过声明字符串常量的方式进行实例化,而是必须普通类对象使用一样,首先通过构造方法进行对象实例化,而后才可以调用方法进行处理。StringBuffer类常用方法如下:

  1. public StringBuffer();构造,创建一个空的StringbBuffer对象
  2. public StringBuffer();构造,将接受到String内容变为StringbBuffer内容
  3. public StringBuffer append(数据类型 变量) ,内容连接,等价于String 中的“+”操作。
  4. public StringBuffer insert(int offset,数据类型 变量) ,普通,在指定索引位置处插入数据
  5. public StringBuffer delete(int start,int end) ,普通,删除指定范围之内的数据
  6. public StringBuffer reverse() ,普通,内容反转

例子:

package usualclasslib;

public class JavaDemo1 {
    public static void main(String[] args) {
        StringBuffer buf=new StringBuffer("欢迎关注");//实例化StringBuffer
        change(buf);//修改StringBuffer内容
        String str=buf.toString();//将StringBuffer变为String实例
        System.out.println(str);//输出最终数据
    }
    public  static void change(StringBuffer temp){
        temp.append("Java编程中心").append("祝你学习进步");//修改内容
    }
}
//执行结果:欢迎关注Java编程中心祝你学习进步

本程序将实例化号的StringBuffer类对象传递到change方法中,而最终的执行结果可以发现,change()方法对StringBuffer类对象所做的修改得到了保存,所以得出结论:

StringBuffer的内容可以被修改

提示:关于字符串常量池的问题。

字符串常量池在使用“+”进行字符串连接最终会成为一个整体的String类对象,所以与直接声明的完整字符串的差别不大。

例子:观察静态常量池

package usualclasslib;

public class JavaDemo2 {
    public static void main(String[] args) {
        
        String str1="欢迎关注";
        String str2="Java编程中心,";
        String str3="祝你学习愉快";
        String str4="欢迎关注Java编程中心,祝你学习愉快";
        String str5=str1+str2+str3;
        System.out.println(str4==str5);//输出最终数据
//执行结果:false

观察这个:

package usualclasslib;

public class JavaDeno2 {
    public static void main(String[] args) {
        String str1="欢迎关注";
        String str2="Java编程中心,";
        String str3="祝你学习愉快";
        String str4="欢迎关注Java编程中心,祝你学习愉快";
        //String str5=str1+str2+str3;
        String str5="欢迎关注"+"Java编程中心,"+"祝你学习愉快";
        System.out.println(str4==str5);//输出最终数据
    }
}
//执行结果:true

实际上,用户使用“ String str5=“欢迎关注”+“Java编程中心,”+“祝你学习愉快”;”定义字符串的时候,程序编译之后的结果等价于以下操作:

StringBuffer buf=new StringBuffer();
buf.append(“欢迎关注”).append(“Java编程中心”).append(",祝你学习愉快");

  • 总结:所有的“+”在编译之后都变为StringBuffer中的append()方法。

StringBuffer类中除了拥有可修改内容的能力外,还提供了一些String类所不具备的方法,下面分别通过具体的实例进行说明。

案例:插入数据

`

package usualclasslib;

public class JavaDeno3 {
    public static void main(String[] args) {
        StringBuffer buf=new StringBuffer();
        buf.append("祝你学习愉快").insert(0,""欢迎关注").insert(4,"Java编程中心");
        System.out.println(buf);
    }
}
//执行结果:欢迎关注Java编程中心,祝你学习愉快

![欢迎关注公众号:Java编程中心](https://img-blog.csdnimg.cn/20191019162510872.jpg)![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页