句子中的单词重复

Cod*_*ker 1 java string split

我用Java编写了一个小程序来查找句子中的重复单词.没有语法错误,没有复杂性错误,但是一旦运行它我就会得到一个奇怪的长错误.

class Find {

    public static void main(String args[]) {

        String M = "Hello World Hello Hello";
        String[] words = M.split(" ");

        for (int i = 0; i < M.length(); i++) {
            for (int j = 0; j < M.length(); j++) {
                if (words[i].equalsIgnoreCase(words[j])) {
                    System.out.printf("Duplicate Words :" + words[i], words[j]);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时:

Duplicate Words :HelloDuplicate Words :HelloDuplicate Words :HelloException in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Find.main(Find.java:9)
Run Code Online (Sandbox Code Playgroud)

我做错了什么?请帮忙.

Jig*_*shi 5

你想迭代受限

words.length
Run Code Online (Sandbox Code Playgroud)

M.length()

最好拆分然后再使用HashSet<String> add(String)方法

那将是O(n)你现有的解决方案O(n^2)