0
HashTable에 단어 배열을 삽입하고 있습니다. 그런 다음 사용자가 입력 한 단어의 철자가 올바른지 확인하는 함수. 내 문제는 맞춤법 검사 기능은 내가 단어를 시작하는 경우에만 작동하지만 사용자가 단어를 올바르게 입력 했더라도 올바르게 작동하지 않는다는 것입니다. 충돌이 발생하지 않는 방식으로 프로그램이 설정되었지만 처리 방법에 대한 제안 사항이 있으면 알려주십시오.HashTable을 사용하여 Word의 맞춤법 검사하기
public class hashExample {
String[] myArray = new String[31];
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] words = { "Achieve", "Across", "Apparently", "Admin",
"Amazing", "Argument", "Assasination", "Accommodate" };
hashExample theFunc = new hashExample();
theFunc.hashFunction(words, theFunc.myArray);
System.out.println("Enter a word to check for spelling...");
String Word = input.nextLine();
//Works only if I initiate Word.
//String Word = "Accommodate";
theFunc.findKey(Word);
}
public void hashFunction(String[] stringsForArray, String[] myArray) {
for (int n = 0; n < stringsForArray.length; n++) {
String newElementVal = stringsForArray[n];
// Using ASCII values of the first four letters of each word.
int arrayIndex = ((int)newElementVal.charAt(0) + (int)newElementVal.charAt(1)
+ (int)newElementVal.charAt(2)+ (int)newElementVal.charAt(3)) % 31;
myArray[arrayIndex] = newElementVal;
}
}
public void findKey(String key) {
int indexHash = ((int)key.charAt(0) + (int)key.charAt(1) + (int)key.charAt(2)
+ (int)key.charAt(3)) % 31;
String wordSearch = myArray[indexHash];
if (key == wordSearch){
System.out.println("Word is spelled correctly!");
} else{
System.out.println("Sorry word is not spelled correctly");
}
}
}