我需要替换字符串中的重复字符.我试过用
outputString = str.replaceAll("(.)(?=.*\\1)", "");
Run Code Online (Sandbox Code Playgroud)
这将替换重复的字符,但字符的位置会发生变化,如下所示.
haih
Run Code Online (Sandbox Code Playgroud)
aih
Run Code Online (Sandbox Code Playgroud)
但我需要得到一个输出hai.也就是说,字符串中出现的字符的顺序不应该改变.以下是某些投入的预期产出.
aaaassssddddd
Run Code Online (Sandbox Code Playgroud)
asd
Run Code Online (Sandbox Code Playgroud)
cdddddggggeeccc
Run Code Online (Sandbox Code Playgroud)
cdge
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?
好像你的代码留下了最后一个字符,那么这个怎么样?
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4220 次 |
| 最近记录: |