Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hashtable contains()不';不读取字符类型_Java_Char_Hashtable - Fatal编程技术网

Java Hashtable contains()不';不读取字符类型

Java Hashtable contains()不';不读取字符类型,java,char,hashtable,Java,Char,Hashtable,出于某种原因,我的哈希表的contains()方法不起作用。我试图创建一个哈希表,记录每个字母在一个单词中被找到的次数 字符:#出现次数 如果能了解我的错误做法,我将不胜感激 Hashtable<Character, Integer> table = new Hashtable<Character, Integer>(); char[] array = word.toCharArray(); //inserting letters into table for (cha

出于某种原因,我的哈希表的
contains()
方法不起作用。我试图创建一个哈希表,记录每个字母在一个单词中被找到的次数

字符:#出现次数

如果能了解我的错误做法,我将不胜感激

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);
    }
}
Hashtable=newhashtable();
char[]数组=word.toCharArray();
//在表格中插入字母
for(字符字母:数组){
//这封信已经在桌子上了
如果(表包含(字母)){
int x=表格get(字母);
x++;
//用更新的值覆盖
表1.put(字母x);
}
//如果字母不在表中
否则{
表1.put(字母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);
String word=“hello”;
Hashtable=新的Hashtable();
//在表格中插入字母
int x;
for(字符字母:word.toCharArray()){
//这封信已经在桌子上了
if(表格containsKey(字母)){
x=表格。获取(字母)+1;
}
//如果字母不在表中
否则{
x=1;
}
表1.put(字母x);
}
系统输出打印项次(表);

这是因为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);
String word=“hello”;
Hashtable=新的Hashtable();
//在表格中插入字母
int x;
for(字符字母:word.toCharArray()){
//这封信已经在桌子上了
if(表格containsKey(字母)){
x=表格。获取(字母)+1;
}
//如果字母不在表中
否则{
x=1;
}
表1.put(字母x);
}
系统输出打印项次(表);

。。。我是个傻瓜。谢谢。我更新了代码,这是我的输出{l=2,h=1,e=1,o=1}。。。我是个傻瓜。谢谢。我更新了代码,这是我的输出{l=2,h=1,e=1,o=1}