zoukankan      html  css  js  c++  java
  • 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()));
        }
    }
  • 相关阅读:
    [bzoj1063][Noi2008]道路设计【树形dp】
    [bzoj1078][SCOI2008]斜堆【可并堆】
    [bzoj3744]Gty的妹子序列【分块】【主席树】
    [bzoj3720]Gty的妹子树【树分块】
    [bzoj3438]小M的作物【最小割】
    [bzoj4518][Sdoi2016]征途【dp】
    [bzoj4260]Codechef REBXOR【trie树】
    [bzoj3307]雨天的尾巴【线段树】
    2020-2021-1 20201229 《信息安全专业导论》第二周学习总结
    我对师生关系的认识
  • 原文地址:https://www.cnblogs.com/huguodong/p/5892699.html
Copyright © 2011-2022 走看看