Я пытаюсь преобразовать мой строку в 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;
}
и в дальнейшем, я буду называть его в моей вставке() метод для выполнения квадратного хэширования с использованием в 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 символов. Может ли кто-нибудь помочь мне исправить это или улучшить способы получить ключевое значение для моей хеш-таблицы?
Спасибо!
Что вы делаете, не имеет смысла. В чем цель? –
Посмотрите на фактическое * значение *, которое приводит к NFE. Отправляйтесь оттуда назад. Прикрепление отладчика и переход через код будет очень ... просвещением. – user2864740
Почему бы не использовать HashMap? – beny23