Java 中怎么使用 StringBuilder 的 reverse 和 delete 方法高效处理字符串反转与剪裁

胖雪同学_2364

胖雪同学_2364

2026-08-18

824人浏览

原创

stringbuilder 的 reverse() 和 delete() 方法高效处理字符串反转与剪裁,因直接操作内部字符数组、避免中间对象创建;reverse() 原地 o(n) 反转并支持链式调用,delete() 精准删除区间且性能优于 replace。

java 中怎么使用 stringbuilder 的 reverse 和 delete 方法高效处理字符串反转与剪裁

Java 中用 StringBuilder 的 reverse() 和 delete() 方法处理字符串反转与剪裁,既高效又简洁——因为它们直接在内部字符数组上操作,不产生中间字符串对象,避免了 String 不可变性带来的开销。

用 reverse() 快速反转整个字符串或局部片段

reverse() 是原地反转,时间复杂度 O(n),比手动循环或使用 StringBuffer 更轻量(除非多线程场景才需考虑线程安全)。注意它返回的是当前 StringBuilder 对象本身,支持链式调用。

  • 反转整个字符串:new StringBuilder("hello").reverse().toString() → "olleh"
  • 若只想反转某一段,可先用 substring() 提取,再反转拼接;但更高效的做法是:截取对应区间,用 reverse() 配合 delete() 和 insert() 替换原位置。例如反转索引 2~5 的子串:
// 原字符串 "abcdefgh"
StringBuilder sb = new StringBuilder("abcdefgh");
String sub = sb.substring(2, 6); // "cdef"
sb.replace(2, 6, new StringBuilder(sub).reverse().toString()); // → "abfedcgh"

用 delete() 精准删除指定范围的字符

delete(int start, int end) 删除从 start(含)到 end(不含)之间的字符,比用 replace(start, end, "") 更直观、性能略优(少一次空字符串创建)。关键点是下标边界必须合法,否则抛 StringIndexOutOfBoundsException。

  • 删除开头 3 个字符:sb.delete(0, 3)
  • 删除末尾 2 个字符:sb.delete(sb.length() - 2, sb.length())
  • 删除中间某段后,长度自动更新,后续操作需重新计算下标(不要复用旧索引)

组合 reverse + delete 实现常见剪裁反转需求

比如「去掉首尾空格后再反转」或「保留前 n 位并反转」这类任务,组合调用比多次新建 String 更省内存。

  • 去首尾空格再反转:new StringBuilder(str.trim()).reverse().toString()
  • 只反转前 4 位,其余不变:StringBuilder sb = new StringBuilder(str); sb.replace(0, 4, sb.substring(0, 4).reverse());
  • 删除第 i 位字符(单个):sb.delete(i, i + 1),比 sb.deleteCharAt(i) 语义更统一,且后者本质也是调用 delete(i, i+1)

注意事项和性能提醒

虽然 StringBuilder 操作高效,但仍有几个易错点:

  • delete() 的 end 参数不能超过当前长度,建议先判断 sb.length()
  • reverse() 不影响容量(capacity),但频繁增删后可调用 trimToSize() 回收多余空间
  • 如果只是临时用一次,推荐链式写法(如 new StringBuilder(s).delete(0,2).reverse().toString()),避免冗余变量
  • 别在循环里反复创建 StringBuilder 实例处理大量字符串——应复用实例或考虑 String 的 chars() + Collectors.joining() 等流式方案(适合函数式风格)

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

10977

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

8082

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

7012

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

1184

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

968

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1416

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2889

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

20171

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

1275

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习