Java常用类:StringBuffer和StringBuilder类

1|0Java常用类:StringBuffer和StringBuilder类


1|1可变字符串

  • StringBuffer :可变长字符串,JDK1.0提供,运行效率慢,线程安全
  • StringBuilder :可变长字符串,JDK5.0提供,运行效率快,线程不安全
  • 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder

1|2常用方法

  • append(String s);将指定的字符串追加到此字符序列

  • insert(int offset, String str);将str字符串插入此字符串中

  • replace(int start, int end, String str);使用str替换掉指定范围的子字符串

  • delete(int start, int end);删除指定范围的子字符串

  • reverse();反转字符串

示例:

public class Demo01 { public static void main(String[] args) { System.out.println("StringBuffer:"); StringBuffer sb = new StringBuffer("Blog:"); //append();末尾追加 sb.append("Java"); System.out.println(sb); sb.append("永远滴神"); System.out.println(sb); //insert();指定位置插入 sb.insert(9," SE"); System.out.println(sb); //replace();指定位置替换 sb.replace(0,5,"博客:");//左闭右开区别[0,5) System.out.println(sb); //delete();指定位置删除 sb.delete(0,3);//左闭右开区别[0,3) System.out.println(sb); //reverse();字符串翻转 sb.reverse(); System.out.println(sb); System.out.println("================="); //StringBuffer 和 StringBuilder差不多 System.out.println("StringBuilder:"); StringBuilder sb1 = new StringBuilder("Blog:"); //append();末尾追加 sb1.append("Java"); System.out.println(sb1); sb1.append("永远滴神"); System.out.println(sb1); //insert();指定位置插入 sb1.insert(9," SE"); System.out.println(sb1); //replace();指定位置替换 sb1.replace(0,5,"博客:");//左闭右开区别[0,5) System.out.println(sb1); //delete();指定位置删除 sb1.delete(0,3);//左闭右开区别[0,3) System.out.println(sb1); //reverse();字符串翻转 sb1.reverse(); System.out.println(sb1); } }

输出

StringBuffer: Blog:Java Blog:Java永远滴神 Blog:Java SE永远滴神 博客:Java SE永远滴神 Java SE永远滴神 神滴远永ES avaJ ================= StringBuilder: Blog:Java Blog:Java永远滴神 Blog:Java SE永远滴神 博客:Java SE永远滴神 Java SE永远滴神 神滴远永ES avaJ

1|3验证效率

  • StringBuffer 和 StringBuilder 类都比 String 类运行快

  • 验证: StringBuilder > StringBuffer > String

  • 实例:

    public class Demo02 { public static void main(String[] args) { //开始时间 long star = System.currentTimeMillis(); String str1 = ""; for (int i = 0; i < 55555; i++) { str1 += i; } //结束时间 long end = System.currentTimeMillis(); System.out.println("String用时:" +(end-star)); //开始时间 long star1 = System.currentTimeMillis(); StringBuffer str2 = new StringBuffer(); for (int i = 0; i < 55555; i++) { str2.append(i); } //结束时间 long end1 = System.currentTimeMillis(); System.out.println("StringBuffer用时:" +(end1-star1)); //开始时间 long star2 = System.currentTimeMillis(); StringBuilder str3 = new StringBuilder(); for (int i = 0; i < 55555; i++) { str3.append(i); } //结束时间 long end2 = System.currentTimeMillis(); System.out.println("StringBuilder用时:" +(end2-star2)); } }

    输出

    String用时:1851 StringBuffer用时:7 StringBuilder用时:4

__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14668235.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(52)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示