出于某种原因,我的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;
}
答案 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