Android基础Java 基础

Java 常用类 06. Java 可变字符串 StringBu

2021-12-17  本文已影响0人  yjtuuige

概述:

区别

与 String 的区别

StringBuffer 与 StringBuilder 的区别

常用方法:

方法 描述
append(String str) 在 StringBuffer 中提供了大量的追加操作(与 String 中使用的 "+" 类似)
insert(int offset,String str) 在指定位置处加上指定字符串
reverse() 将内容反转保存
replace(int start,int end,String str) 指定内容替换
lenth() 字符串的长度
delete(int start,int end) 删除指定范围的字符串
toString() Object 类继承的方法,用于将内容变为 String 类型
package com.base.demo04;

public class Test08 {
    public static void main(String[] args) {
        // StringBuffer 和 StringBuilder 用法一致
        StringBuffer sb = new StringBuffer();
        // 1.append(); 追加字符串
        sb.append("HELLO");
        System.out.println(sb);
        // 2.insert(int offset,String str); 指定位置插入字符串
        // 在第5个位置插入,下标从0开始,越界会异常
        System.out.println(sb.insert(5, " World!"));
        // 3.replace(int start,int end,String str); 指定位置内容替换 (左闭右开)
        sb.replace(0,5,"Hello");
        System.out.println(sb);
        // 4.delete(int start,int end); 删除指定位置字符串 (左闭右开)
        sb.delete(5,9);
        //  sb.delete(0,sb.length());  清空
        System.out.println(sb);
        // 5. reverse(); 将字符串反转
        System.out.println(sb.reverse());
        // 6.toString(); 将内容转换为 String 类型
        System.out.println(sb.getClass());
        System.out.println("======= toString后 ======");
        System.out.println(sb.toString().getClass());
    }
}
package com.base.demo04;

public class Test09 {
    public static void main(String[] args) {
        // 运行效率对比
        // 1.String
        String str = "";
        long start = System.currentTimeMillis();    // 开始时间
        for (int i = 0; i < 99999; i++) {
            str += i;   // 字符串拼接
        }
        long end = System.currentTimeMillis();  // 结束时间
        System.out.println("String用时:" + (end - start));
        // 2.StringBuffer
        StringBuffer sb = new StringBuffer();
        long start1 = System.currentTimeMillis();   // 开始时间
        for (int i = 0; i < 99999; i++) {
            sb.append(i);   // 字符串拼接
        }
        long end1 = System.currentTimeMillis();  // 结束时间
        System.out.println("StringBuffer用时:" + (end1 - start1));
        // 3.StringBuilder
        StringBuilder sb2 = new StringBuilder();
        long start2 = System.currentTimeMillis();   // 开始时间
        for (int i = 0; i < 99999; i++) {
            sb2.append(i);   // 字符串拼接
        }
        long end2 = System.currentTimeMillis();  // 结束时间
        System.out.println("StringBuilder用时:" + (end2 - start2));
    }
}

总结:

上一篇下一篇

猜你喜欢

热点阅读