从字符串中删除相邻的副本,只保留一个实例:java

时间:2015-03-23 19:31:58

标签: java string comparison

很难说出来,所以我会用例子。考虑以下输入: -

Input String  =  AABBSTUUUX
Output String =  ABSTUX

如何在java中实现这一点。

3 个答案:

答案 0 :(得分:1)

这应该这样做

String word = "AABBSTUUUX";

for (int i = 0; i < word.length() - 1; i++) {
    if (word.charAt(i) == word.charAt(i + 1)) {
        word.deleteCharAt(i + 1);
    }
}

System.out.println(word);

答案 1 :(得分:1)

步骤:

  1. 从头到尾扫描字符串
  2. char类型变量temp
  3. 中添加每个字符
  4. 将每个字符与temp除以第一个(由索引0标记)字符进行比较并删除重复的

答案 2 :(得分:1)

类似于@ Razib上述解决方案的实现:

public String removeDupes(String in) {

  if (in == null || in.length() <= 1) {
    return in;
  }

  char lastLetter = in.charAt(0);
  String out = String.valueOf(lastLetter);
  for (int i = 1; i < in.length(); i++) {
    char nextLetter = in.charAt(i);
    if (nextLetter != lastLetter) {
      out += nextLetter;
    }
    lastLetter = nextLetter;
  }

  return out;
}

显然,这是区分大小写的,并且也会删除重复的非单词字符。