有没有办法用正则表达式替换特定的重复字符?
例:
str ="安妮有没有东西"
解决方案是:
"Ane有n个东西"
如果一个字符串有两个或多个彼此相邻的一个字符的实例,那么正则表达式应该只用一个替换它们.
有可能的:
inputString.replaceAll("(.)\\1+", "$1")
Run Code Online (Sandbox Code Playgroud)
匹配一个字符,捕获它,重复一次或多次,仅替换捕获.
然而,这可能不是更快的解决方案.这样的事情也可以用一个简单的循环:
public String removeRepetitions(final String input)
{
if (input.isEmpty())
return input;
final int len = input.length();
final StringBuilder sb = new StringBuilder(length);
char current = input.charAt(0);
char c;
sb.append(current);
for (int i = 1; i < len; i++) {
c = input.charAt(i);
if (c != current) {
sb.append(c);
current = c;
}
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |