我需要替换字符串中的重复字符。我尝试使用
outputString = str.replaceAll("(.)(?=.*\\1)", "");
这会替换重复的字符,但字符的位置会发生变化,如下所示。
输入
haih
输出
aih
但我需要得到一个输出hai
。也就是说字符串中出现的字符顺序不应该改变。下面给出了一些输入的预期输出。
输入
aaaassssddddd
输出
asd
输入
cdddddggggeeccc
输出
cdge
如何实现?
最佳答案
您的代码似乎要离开最后一个字符,那么这个怎么样?
outputString = new StringBuilder(str).reverse().toString();
// outputString is now hiah
outputString = outputString.replaceAll("(.)(?=.*\\1)", "");
// outputString is now iah
outputString = new StringBuilder(outputString).reverse().toString();
// outputString is now hai
关于java - 如何使用正则表达式删除字符串中的重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26813420/