我有这样的字符串“aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符得到这样的字符串“abcadcfgh”。
一个简单的实现是:
for(Character c:str.toCharArray()){
if(c!=prevChar){
str2.append(c);
prevChar=c;
}
}
return str2.toString();
是否有可能使用正则表达式实现更好的实现?
最佳答案
你可以这样做:
"aaaabbbccccaaddddcfggghhhh".replaceAll("(.)\\1+","$1");
正则表达式使用反向引用和捕获组。
正常的正则表达式是 (.)\1+
但你必须用 java 中的另一个反斜杠来转义反斜杠。
如果你想要重复字符的数量:
String test = "aaaabbbccccaaddddcfggghhhh";
System.out.println(test.length() - test.replaceAll("(.)\\1+","$1").length());
关于java - 去除字符串中的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520205/