Java HashMap containsKey()找不到我放置的字符串键。字符串键';s值来自读取文本文件

Java HashMap containsKey()找不到我放置的字符串键。字符串键';s值来自读取文本文件,java,hashmap,key,Java,Hashmap,Key,在我的程序中,我定义了如下hashmap: HashMap<String, Integer> dictionary = new HashMap<String, Integer>(); 现在我的问题是,我从文本文件中读取的字符串键“whoo”无法从hashmap的键中找到。另一方面,我直接作为字符串键放入的“dummy”可以在hashmap的键中找到 我需要一种方法使containsKey()能够找到“whoo”,因为我的程序依赖于文件读取并使用读取的单词作为hash

在我的程序中,我定义了如下hashmap:

HashMap<String, Integer> dictionary = new  HashMap<String, Integer>();
现在我的问题是,我从文本文件中读取的字符串键“whoo”无法从hashmap的键中找到。另一方面,我直接作为字符串键放入的“dummy”可以在hashmap的键中找到

我需要一种方法使containsKey()能够找到“whoo”,因为我的程序依赖于文件读取并使用读取的单词作为hashmap的字符串键。谢谢大家!

编辑:

以下是我正在阅读的文本文件的内容:

我按照你们大多数人的建议做了,并试图先打印出word的值

System.out.println("word read is: " + word);
还添加了另一种检查,查看hashmap包含哪些键

Set keys = dictionary.keySet();

for (Iterator i = keys.iterator(); i.hasNext();){
    String key = (String) i.next();
    System.out.println("key found in the hashmap: " + key);

}
以下是输出:


即使字符串单词包含“whoo”,甚至可以在一组键中找到,containsKey()仍会在将
单词添加到字典之前为我提供一个false

打印
变量。最好是添加断点并进行调试。我希望您会发现它不是您认为的值。

程序看起来非常直接,在读取文件时将结果输出为true。检查是否使用了空格、逗号或大小写。我相信这可能就是问题所在


正如其他人所建议的那样,使用调试器并打印出内容肯定会帮助您找到根本原因。

我认为您需要发布一个有效的文本文件和一个小版本的文本文件,以及观察到的与预期的输出,以获得正确的答案。如果在地图中找不到字符串,则“哇”没有从文件中读取。您确实需要学习使用调试器,或者至少向代码中添加日志语句。检查word的值是多少。检查地图包含的内容。字符串
whoo
是否所有字符都是小写的?在文件中,还要查看它是否没有空间。最好使用调试或打印值。
Set keys = dictionary.keySet();

for (Iterator i = keys.iterator(); i.hasNext();){
    String key = (String) i.next();
    System.out.println("key found in the hashmap: " + key);

}