如何创建从文本文件中删除重复单词的Java程序?

如何创建从文本文件中删除重复单词的Java程序?,java,duplicate-removal,Java,Duplicate Removal,我想用Java编写一个程序,可以删除文本文件中的重复单词。我是一个编程新手,我一直在谷歌上搜索,但我还没有找到一个可以理解的指南来创建这样一个程序。我并不是要一个完整的项目作为答案,虽然这是非常可取的:p,但我真的想就如何开发这个项目提出一些建议。拜托,有人吗?我可以管理编程,我只是不知道这里应该采取什么步骤。使用String.split将文本中的所有单词添加到数组String[],然后将它们附加到一个集合中,这样就不会出现重复。现在在数组上执行循环以重新写入文本并从集合中删除匹配的单词。添加条

我想用Java编写一个程序,可以删除文本文件中的重复单词。我是一个编程新手,我一直在谷歌上搜索,但我还没有找到一个可以理解的指南来创建这样一个程序。我并不是要一个完整的项目作为答案,虽然这是非常可取的:p,但我真的想就如何开发这个项目提出一些建议。拜托,有人吗?我可以管理编程,我只是不知道这里应该采取什么步骤。

使用String.split将文本中的所有单词添加到数组String[],然后将它们附加到一个集合中,这样就不会出现重复。现在在数组上执行循环以重新写入文本并从集合中删除匹配的单词。添加条件如果一个单词在Aray中但不在集合中,则表示它是重复的,将不会被重新写入


希望它能有所帮助

只是为了好玩,我写了一个快速解决方案,它使用了大量代码来避免样板IO代码

关键是,标准Java SDK的一部分,它是一个集合,即一个重复的自由集合,其元素按插入顺序保存

这种方法就是这样,LinkedHashMap用作不允许重复的结构

private static void removeDuplicateWords(File file) {
    try {
        String contents = Files.toString(file, Charsets.UTF_8);
        String[] words = contents.split("\\s+"); // or however you define "word"!

        // UsingLinkedHashSet to remove duplicates while retaining order
        LinkedHashSet<String> linkedHashSet = Sets.newLinkedHashSet();
        Collections.addAll(linkedHashSet, words);

        String newContents = Joiner.on(" ").join(linkedHashSet);
        Files.write(newContents, file, Charsets.UTF_8);

    } catch (IOException e) {
        System.out.println(e);
    }
}

它是Java,而不是Java,在问题中不必到处提到它,因为它被标记了。此外,请尽可能少的努力。你应该做的步骤:1读取内存中的文件内容,2检查你读过的内容,删除重复项。你可能希望将单词存储在不允许重复的结构中,3将结果写回文件。这会丢失换行符,如何定义单词和处理是不明确的。这些细节留给任何需要此类计划的人作为练习哦,非常感谢。“我会经历的,”乔尼克说。