可变字符串(StringBuffer, StringBuilder)

可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。
  • StringBuilder:可变长字符串,JDK1.5提供,运行效率快、线程不安全。
  • 方法:append(),insert(),replace(),delete(),reverse()
package com.jacyzhu.string;

/*
    StringBuffer和StringBuilder的使用
    和String区别:(1)效率比String高;(2)比String节省内存
 */
public class Demo04 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
//         StringBuilder sb = new StringBuilder();
        // 1.append();追加
        sb.append("java世界第一");
        System.out.println(sb); // java世界第一
        System.out.println(sb.toString()); // java世界第一

        sb.append("java真香");
        System.out.println(sb.toString()); // java世界第一java真香

        sb.append("java不错");
        System.out.println(sb.toString()); // java世界第一java真香java不错

        // 2.insert(); 添加
        sb.insert(0, "我在最前面");
        System.out.println(sb.toString()); // 我在最前面java世界第一java真香java不错

        // 3.replace();
        sb.replace(0, 5, "hello");
        System.out.println(sb.toString()); // hellojava世界第一java真香java不错

        // 4.delete(); 删除
        sb.delete(0, 5);
        System.out.println(sb.toString()); // java世界第一java真香java不错

        // 5.反转
        sb.reverse();
        System.out.println(sb.toString()); // 错不avaj香真avaj一第界世avaj

        // 6.清空
        System.out.println(sb.length()); // 20
        sb.delete(0, sb.length());
        System.out.println(sb);
        System.out.println(sb.length()); // 0
    }
}
运行结果:
java世界第一
java世界第一
java世界第一java真香
java世界第一java真香java不错
我在最前面java世界第一java真香java不错
hellojava世界第一java真香java不错
java世界第一java真香java不错
错不avaj香真avaj一第界世avaj
20

0

验证StringBuilder效率高于String

package com.jacyzhu.string;

// 验证StringBuilder效率高于String
public class Demo05 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
//        String string = "";
//        for (int i = 0; i < 99999; i++) {
//            string += i;
//        }
//        System.out.println(string);

//        StringBuffer sb = new StringBuffer();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(sb.toString());
        long end = System.currentTimeMillis();
        System.out.println("用时:"+(end-start)); // String用时:16794  StringBuffer用时:14  StringBuilder用时:13
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值