当前位置: 首页 > 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

 

http://www.dtcms.com/a/59425.html

相关文章:

  • 基于操作系统控制平台-深入剖析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 矩阵加速、欧拉降幂
  • 通过Nacos API实现微服务不间断部署
  • 从传统到智能:Node-red工控机助力农业大棚高效监控
  • 【Python】Django 中的算法应用与实现
  • Android Configuration相关问题如何定位分析(中英文切换、黑夜白天模式等)
  • 【GPU】什么是 NVLink?
  • 4G铁路工控机在高铁信号控制中的关键作用
  • 【SpringBoot3】SpringBoot项目Web拦截器使用
  • 小程序 -- uni-app开发微信小程序环境搭建(HBuilder X+微信开发者工具)
  • C++性能分析工具
  • 基于遗传算法的IEEE33节点配电网重构程序