Java:删除重复的单词& java中单词的子串

时间:2017-02-13 05:01:13

标签: java string

最近我遇到了一个我无法在学校解决的问题。

我需要删除包含单词的输入字符串中的重复单词。这里的主要问题是该要求声明我不能使用数组或正则表达式。

E.g。

userInput =“这是测试测试真的很有趣”

  • 第一个“是”是“this”的副本,因为它是一个子字符串
  • 第二个“是”是第一个“是”的副本
  • “testing”不是“test”的副本,因为它不是完全匹配

因此输出结果为 - “这真是一个测试测试的乐趣”

如果不使用Arrays或Regular Expressions,实际上如何实现这一点,因为不可能通过空格分割单词并在java中动态创建String。

1 个答案:

答案 0 :(得分:0)

我没有编译这段代码,但我认为它应该可行。 让我知道它是否可以帮助您解决问题。

public String solve(String input) {
    String ret = "";
    int pos = 0;

    while(pos<input.length()) {
        // find next position of space
        int next = input.indexOf(' ',pos);

        // space not exists, skip next to end of string
        if(next==-1) next = input.length();

        // take 1 word from input
        String word = input.substring(pos,next);

        // check if word exists in previous result
        if(ret.indexOf(word)==-1) {
            if(ret.length() > 0) ret += " ";
            // append word to ret
            ret += word;
        }
        pos = next + 1;
    }
    return ret;
}