我有一个插入HashTable的单词数组。 然后是一个函数,用于检查用户输入的单词是否拼写正确。 我的问题是拼写检查功能只有在我启动单词时才有效,但是如果用户输入单词则不行(即使拼写正确)。 程序的设置方式不会发生冲突,但如果您对如何处理它们有任何建议,请告诉我。
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");
}
}
}
答案 0 :(得分:1)
将键== wordSearch 更改为 key.equals(wordSearch),然后它将开始使用输入。
因为字符串是对象,并且如果要比较两个字符串,请使用.equals方法来比较它们而不是==。
if (key.equals(wordSearch)) {
System.out.println("Word is spelled correctly!");
} else {
System.out.println("Sorry word is not spelled correctly");
}