在我的節目,我如下定義一個HashMap:HashMap containsKey()找不到我已經放置的字符串鍵。該字符串鍵值是讀取文本文件
HashMap<String, Integer> dictionary = new HashMap<String, Integer>();
我有一個文本文件閱讀,並把第一個字我讀(這是「whoo」,順便說一句)作爲我的散列表的字符串鍵,1作爲一個值。我也把2另一個與「虛擬」鍵和值到HashMap中
try{
File f = new File("test.txt");
Scanner sc = new Scanner(f);
String word = "";
word = sc.next();
dictionary.put(word, 1);
dictionary.put("dummy", 2);
System.out.println("contains whoo as key: " + dictionary.containsKey("whoo"));
System.out.println("contains dummy as value: " + dictionary.containsKey("dummy"));
}
catch(Exception e){
System.out.println("error");
}
我現在的問題是,「喔」,我從我的文本文件讀取字符串鍵,不能被發現從hashmap的鍵。另一方面,我直接將其作爲String鍵使用的「dummy」可以在hashmap的鍵中找到。
我需要一種方法能夠使的containsKey()找到「喔」,因爲我的程序依賴於文件的閱讀和使用閱讀作爲字符串鍵HashMap中的話。謝謝!
編輯:
這是文本文件,我讀的內容:
我做了什麼,你們中的大多數建議,並試圖打印出字第
的價值System.out.println("word read is: " + word);
並且還添加了另一種檢查來查看我的散列表包含哪些鍵
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);
}
這裏是輸出:
即使字符串字包含「喔」了,甚至在一組密鑰的發現的containsKey()仍然給我一種虛假
我認爲你需要發佈一個有效的[mcve]以及一個小版本的文本文件,並觀察與預期的輸出,以獲得體面的答案。 –
如果在地圖中未找到該字符串,則不會從該文件讀取「whoo」。 – 4castle
您確實需要使用調試器學習,或者至少將日誌記錄添加到代碼中。檢查單詞的價值。檢查你的地圖包含什麼。 –