读取.txt文件以查看是否在其他.txt文件中找到了某个单词?

时间:2015-10-24 03:50:12

标签: java dictionary

我迷失了,需要指导。我编写了我的代码来扫描book.txt,但是如何将input.txt中的单词与book.txt中的单词进行比较?

2 个答案:

答案 0 :(得分:1)

这会工作我会想

Scanner scan = new Scanner("book.txt");

Set<String> list = new HashSet<String>();
String word = "";

while(scan.hasNextLine())
    list.add(scan.nextLine());
scan.close();
scan = new Scanner("input.txt");
while(scan.hasNextLine())
    if(!list.contains((word = scan.nextLine()))) //word from input.txt is not in book.txt
        System.out.println(word); //print the word to the console

scan.close();

答案 1 :(得分:0)

如果您无法使用HashSet,请创建自己的hashFunction

最常用的hashFunction是这样的:

public static int mod = 1000007;
private static Long hashFunction(String word) {
        long hash = 5831;
        for (int i = 0; i < word.length(); ++i) {
            hash *= 33;
            hash %= mod;
            hash += word.charAt(i);
            hash %= mod;
        }
        return hash;
    }

hashFunction的基本思想是从它的单词创建一个哈希值,然后使用布尔值true填充该数组,表明它存在。

当您创建一个包含所有哈希值的整个hashTable时。然后只需为目标字创建一个哈希值,并检查它是否存在于hashTable中。