美文网首页程序员
Java中的StringBuffer类

Java中的StringBuffer类

作者: 小磊z | 来源:发表于2020-08-24 15:19 被阅读0次

由于String的内容一旦声明则不可改变,如果要改变,那么改变的是String的引用地址而不是string中的内容,一个字符串要经常改变,则必须使用StringBuffer类。StringBuffer中只能用append方法进行字符串的连接,而不能使用String类中的“+”字符。如下

image
实例操作一:字符串的连接操作

append()方法返回一个StringBuffer类的实例,因此可以采用代码链的形式一直调用append()方法,代码如下

StringBuffer buffer = new StringBuffer();
        buffer.append("hello");
        buffer.append("World").append("!!!!");
        buffer.append("\n");
        buffer.append("数字 = ").append(1).append("\n");
        buffer.append("字符 = ").append('C').append("\n");
        buffer.append("布尔 = ").append(true);
        System.out.println(buffer);

以上代码中的“buffer.append("数字 = ").append(1).append("\n")”实际上 就是一种代码链的操作形式。
范例:验证StringBuffer的内容是可以修改的

public class StringBufferDemo02 {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();

        buffer.append("Hello");
        fun(buffer);
        System.out.println(buffer);
    }

    public static void fun(StringBuffer s) {
        s.append("hahahaha").append("mmm");
    }
}

程序运行结果:Hellohahahahammm
从程序的运行结果可以发现,将StringBuffer对象的内容传递到了fun()方法后,对StringBuffer的内容进行修改,而且修改完毕后修改的内容也被保留了下来。

StringBuffer类的应用

在学习String类时,曾有以下的代码:

String str1 = "MiaoXiaoLei";
for(int i = 0; i < 100; i++){
    str1+=i;
}

在上面的代码中虽然最后字符串的结果改变了,但实际上是通过不断修改对象的引用来实现的,性能很差,此类问题的解决就西部依靠StringBuffer,因为StringBuffer的内容是可以修改的。代码修改如下。
范例:使用StringBuffer完成要求

public class StringBufferDemo10 {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();
        buffer.append("miaoxiaolei");
        for (int i = 0; i < 100; i++) {
            buffer.append(i);
        }
        System.out.println(buffer);
    }
}

以上程序与第一个程序是一样的,但是由于使用了StringBuffer,所以代码的性能有了很大的提高,也就是说对于频繁修改字符串内容的地方,最好使用StringBuffer类完成。

相关文章

网友评论

    本文标题:Java中的StringBuffer类

    本文链接:https://www.haomeiwen.com/subject/omdnjktx.html