You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何用单个字符替换字符串中的多个重复字符?

用单个字符替换连续重复字符的简便方法

当然可以!完全不用写繁琐的循环逻辑,正则表达式就能轻松搞定这类连续重复字符的替换需求,绝对是最简洁高效的方案。

针对你提到的斜杠替换场景

如果你只需要处理连续的/,直接用匹配一个或多个斜杠的正则表达式替换成单个斜杠就行:

String input = "/////Hello//this////////is///Java";
String output = input.replaceAll("/+", "/");
System.out.println(output); // 输出结果: /Hello/this/is/Java

通用场景:替换任意连续重复的单个字符

如果你的需求更通用——把任何连续重复的单个字符都替换成一个,比如把aaaaabbbccccc变成abcc,可以用带捕获组的正则:

String input = "aaaaabbbcccccHello   world!!!";
String output = input.replaceAll("(.)\\1+", "$1");
System.out.println(output); // 输出结果: abccHello world!

简单解释下这个正则的逻辑:

  • (.):捕获任意一个单个字符,把它存到第一个捕获组里
  • \\1+:匹配和第一个捕获组完全相同的字符,且至少重复一次
  • $1:把匹配到的连续重复部分替换成捕获组里的那个单个字符

这种方法比手动写循环高效太多,不用自己遍历字符、判断重复状态、拼接字符串,一行代码就能搞定,可读性也拉满~

内容的提问来源于stack exchange,提问作者Tailor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:47:36