【发布时间】:2019-07-16 17:20:13
【问题描述】:
CharSequence content = new StringBuffer("aaabbbccaaa");
String pattern = "([a-zA-Z])\\1\\1+";
String replace = "-";
Pattern patt = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
Matcher matcher = patt.matcher(content);
boolean isMatch = matcher.find();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < content.length(); i++) {
while (matcher.find()) {
matcher.appendReplacement(buffer, replace);
}
}
matcher.appendTail(buffer);
System.out.println(buffer.toString());
上面代码中content是输入字符串,
我正在尝试从字符串中查找重复出现并希望将其替换为最大出现次数
举例
输入-("abaaadccc",2)
输出 - "abaadcc"
这里aaa和ccc被aa和cc替换,因为最大允许重复是2
在上面的代码中,我发现了这样的事件并尝试用- 替换它们,它正在工作,但是有人可以帮助我如何获取当前字符并替换为允许的事件
即如果找到aaa,则将其替换为aa
或者有没有使用正则表达式的替代方法?
【问题讨论】: