[英]Hashtable contains() doesn't read char type
由於某種原因,我的哈希表的contains()
方法無法正常工作。 我正在嘗試創建一個哈希表,該哈希表記錄在一個單詞中找到每個字母的次數。
character : # of occurrences
我將不勝感激任何對我做錯事的見解。
Hashtable<Character, Integer> table = new Hashtable<Character, Integer>();
char[] array = word.toCharArray();
//inserting letters into table
for (char letter : array) {
//letter is already in table
if (table.contains(letter)) {
int x = table.get(letter);
x++;
//overwriting with updated value
table.put(letter, x);
}
//if letter is not already in table
else {
table.put(letter, 1);
}
}
這是因為contains方法要查找值,而不是鍵,因此必須使用containsKey()方法來接收字符,這種情況下,它應該看起來像這樣
更新:這個重構怎么樣?
String word ="hello";
Hashtable<Character, Integer> table = new Hashtable<Character, Integer>();
//inserting letters into table
int x;
for (char letter : word.toCharArray()) {
//letter is already in table
if (table.containsKey(letter)) {
x = table.get(letter)+1;
}
//if letter is not already in table
else {
x=1;
}
table.put(letter, x);
}
System.out.println( table);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.