代码甚至没有执行。 JAVA

时间:2014-03-22 02:33:30

标签: java

出于某种原因,我的if语句甚至根本没有被执行。无法弄清楚出了什么问题,我正在尝试测试一个名为“fuor”的词,并在我的哈希表中做一些操作。

            if(table[getHashIndex(c.toString())].contains(c.toString()))

这是未执行的行

Tableclass

char[] c = word.toCharArray();
            for(int i=0;i<word.length()-1;i++)
            {
                char tempChar= c[i];
                c[i]=c[i+1];
                c[i+1]=tempChar;

                if(table[getHashIndex(c.toString())].contains(c.toString()))
                {
                    list.add(c.toString());                 
                   System.out.println("GOT IT BABY");
                }
                c = word.toCharArray();

            }



    public int getHashIndex(String word){
    int key = 7;
    //Adding ASCII values of string
    //To determine the index
    for(int i = 0 ; i < word.length(); i++){
        key = key*BASE+(int)word.charAt(i);
        //Accounting for integer overflow
        if(key<0)
        {
            key*=-1;
        }
    }
    key %= sizeOfTable;
    return key;
}



//Bucket class
public boolean contains(String word){

    Node insert = start;

    //Traversing the list to find a match
    while(insert!=null){
        if(word.equalsIgnoreCase(insert.item))
            return true;

        insert = insert.next;
    }
    //did not find a match
    return false;

}

1 个答案:

答案 0 :(得分:1)

Java Array上的toString返回默认对象toString()(因为数组不是基本类型,例如c.toString(),如此),

char[] t = new char[] { 'a' };
System.out.println(t.toString());

输出(例如)

[C@25f45022

我觉得你真的想要像

这样的东西
char[] t = new char[] { 'a' };
System.out.println(java.util.Arrays.toString(t));

哪个输出

[a]

或者,也许你想要这样的东西

char[] t = new char[] { 'a' };
System.out.println(new String(t));

哪个输出

a