当前位置: 首页 > news >正文

StringBuilder常用方法详解

目录

核心方法详解

1. 构造方法

2. 追加内容:append()

3. 插入内容:insert()

4. 删除内容:delete()

5. 替换内容:replace()

6. 反转字符串:reverse()

7. 字符串长度操作

8. 容量管理

9. 转换为String:toString()

性能最佳实践


StringBuilder 是 Java 中用于高效操作可变字符串的类,位于 java.lang 包中。与不可变的 String 类不同,StringBuilder 允许在不创建新对象的情况下直接修改字符串内容,适用于频繁拼接、删除或替换字符串的场景。其线程不安全但性能更高,而 StringBuffer 是线程安全的替代方案。

核心方法详解

1. 构造方法

  • StringBuilder()默认初始容量为16字符的缓冲区。

StringBuilder sb = new StringBuilder();
  • StringBuilder(int capacity)指定初始容量。
StringBuilder sb = new StringBuilder(100);  // 初始容量100
  • StringBuilder(String str)用指定字符串初始化。
StringBuilder sb = new StringBuilder("Hello");

2. 追加内容:append()

向末尾追加数据,支持多种类型(字符串、数字、对象等)。

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");       // "Hello World"
sb.append(123);            // "Hello World123"
sb.append(true);           // "Hello World123true"
sb.append("hello").("world").(123)//链式编程 helloworld123

3. 插入内容:insert()

在指定位置插入数据。

StringBuilder sb = new StringBuilder("Hello");
sb.insert(2, "Java");      // "HeJavallo"
// 注意:索引范围是 0 到 length()

4. 删除内容:delete()

删除指定区间的字符(左闭右开)。

StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11);          // "Hello"
sb.deleteCharAt(4);       // 删除索引4的字符,结果"Hell"

5. 替换内容:replace()

替换指定区间的字符。

StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java");  // "Hello Java"

6. 反转字符串:reverse()

反转当前字符串。

StringBuilder sb = new StringBuilder("Hello");
sb.reverse();               // "olleH"

7. 字符串长度操作

  • length():返回实际长度。
  • setLength(int newLength):设置新长度(截断或填充空字符)。
StringBuilder sb = new StringBuilder("Hello");
sb.setLength(3);           // "Hel"
sb.setLength(5);           // "Hel  "(后两位为空字符)

8. 容量管理

  • capacity():返回当前容量(非实际长度)。
  • ensureCapacity(int minCapacity):确保最小容量。
StringBuilder sb = new StringBuilder();
sb.ensureCapacity(100);    // 确保容量至少为100

9. 转换为String:toString()

将内容转换为不可变字符串。

StringBuilder sb = new StringBuilder("Hello");
String str = sb.toString();  // "Hello"

性能最佳实践

  1. 预估初始容量:减少扩容次数(默认扩容规则:新容量 = 原容量*2 + 2)。
  2. 链式调用:利用方法返回自身引用的特性。
  3. 避免在循环中使用+拼接字符串,优先使用StringBuilder

 

相关文章:

  • 基于操作系统控制平台-深入剖析CPUGPU Tracing分析
  • 【Linux】初识线程
  • 网格图学习(附题单与做题思路)
  • 【开源界的Manus替代战:模块化设计 vs 跨平台实战 vs 全能开发,谁主沉浮?】
  • DNASimCLR:一种基于对比学习的基因序列数据分类的深度学习方法
  • 生成任务,大模型
  • GHCTF2025--Web
  • Nginx完全指南:从入门到精通(基于Ubuntu系统)
  • MySQL入门手册
  • Vite 打包后Nginx部署配置
  • 二叉树计算
  • _二级继电器程控放大倍数自动设置
  • WWW 2025 | 时间序列(Time Series)论文总结
  • 【计算机网络】深入解析 HTTP 中的 GET 方法、POST 方法和 GET 和 POST 的区别
  • SpringCloud——LoadBalancer负载均衡服务调用
  • Docker入门篇1:搜索镜像、拉取镜像、查看本地镜像列表、删除本地镜像
  • 第13章 安全加固OSI的第8层(网络安全防御实战--蓝军武器库)
  • k倍区间 | 哈希 分巧克力 | 二分 青蛙跳杯子 | BFS
  • Lab18_ SQL injection with filter bypass via XML encoding
  • Codeforces Round 566 (Div. 2) E. Product Oriented Recurrence 矩阵加速、欧拉降幂
  • 甘肃省白银市一煤矿发生透水事故,3人失联
  • 中方是否担忧美国主权信用评级下调?外交部:美国应采取负责任的政策措施
  • 女巫的继承者们
  • 加快推进科技服务业高质量发展,九部门联合发文
  • 俄需要达成怎样的特别军事行动结果?普京:包含四个方面
  • 上海将建设万兆小区、园区及工厂,为模型训练数据的传输提供硬件支持