我想我字符串轉換通過我的哈希函數,它看起來像這樣以ASCII值:java.lang.NumberFormatException:轉換字符串以ASCII
public long hash(String word){
StringBuilder sb = new StringBuilder();
String ascString = null;
long asciiInt;
for(int i=0;i<word.length();i++){
sb.append((int)word.charAt(i));
}
ascString = sb.toString();
asciiInt = Long.parseLong(ascString);
return asciiInt;
}
,後來,我將其稱之爲在我的insert()方法來使用hashTable中進行二次哈希和插入方法是這樣的:
public void insert(Word word){
int start = (int)(hash(word.text)%tableSize);
int key = start;
int attempt=0;
while(hashTable[key]!=null){
attempt++;
key=(start+(int)Math.pow(attempt,2))%tableSize;
}
hashTable[key]=word;
}
然而,拋出java.lang.NumberFormatException
如果我的字符串試圖轉換超過6個字符。任何人都可以幫助我解決它或更好的方式來爲我的哈希表提供關鍵的價值?
謝謝!
你在做什麼是沒有意義的。什麼目的? – 2014-10-30 01:26:39
看看導致NFE的實際*值*。從那裏倒退。附加一個調試器並逐步完成代碼將非常有啓發性。 – user2864740 2014-10-30 01:26:40
爲什麼不使用HashMap? – beny23 2014-10-30 01:31:44