Java学习笔记之:Java StringBuffer类

一、引言

当对字符串进行修改的时候,需要使用StringBuffer类。

和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未用对象。

二、StringBuffer 方法

 以下是StringBuffer类支持的主要方法:

序号方法描述
1 public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
2 public StringBuffer reverse()
 将此字符序列用其反转形式取代。
3 public delete(int start, int end)
移除此序列的子字符串中的字符。
4 public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。
5 replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。

三、笔记

package com.hgd.study6.other;

/**
 * 
 * stringbffer 字符串缓冲类,可变长度的字符串,对它的操作就是对内存的操作,字符串本身和返回的结果一样
 * 
 * 在使用字符串拼接的时候stringbuffer的性能要比string的性能要好,stringbuffer采用的是append方法
 * string采用的是加连接
 * @author HuTiger
 *
 */
public class StringAndStingBuffer {

    public static void main(String[] args) {
        String s1 = "abc";
        System.out.println(s1);
        String s2 = "abc";
        System.out.println(s2);

        StringBuffer sb1 = new StringBuffer("abc");
        System.out.println(sb1);// 隐式的调用了tosring方法
        // 当直接输出对象的时候,相当于输出了对象的.tostring
        StringBuffer sb2 = new StringBuffer("abc");
        System.out.println(sb2);

        System.out.println(s1 + "d");

        System.out.println(sb1.append("d"));
        System.out.println(s1);// 字符串长度不可变
        System.out.println(sb1);// 操控的是内存,又叫做可变长度的字符串
        String s = "a";
        StringBuffer sb = new StringBuffer("a");
        String str = s + "b";

        StringBuffer sbr = sb.append("b");
        System.out.println(str);// ab
        System.out.println(sbr);// ab

        /*
         * 性能比较,字符串拼接的测试
         */

        // 字符串
        String string = "A";
        long start = System.currentTimeMillis();
        for (int i = 0; i < 100; i++) {
            s += "B";
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);

        StringBuffer stringBuffer = new StringBuffer();
        start = System.currentTimeMillis();
        for (int i = 0; i < 100; i++) {
            stringBuffer.append("B");
        }
        end = System.currentTimeMillis();
        System.out.println(end - start);
        System.out.println(string.equals(stringBuffer.toString()));
    }
}

 

posted @ 2016-09-21 15:09  HuTiger  阅读(401)  评论(0编辑  收藏  举报