我想創建一個程序,將從用戶使用稱爲'bulletproof'的包輸入(完成,工作正常),但我得到一個無限循環錯誤當我找到一場比賽時。我有點頭大,我不覺得我完全理解爲什麼我的代碼不工作。我不想直接回答,因爲我正在努力學習,但任何幫助都會受到真誠的讚賞。謝謝,我的代碼如下。使用方法來搜索列表中的匹配在Java中
--edit-- 我得到了程序的工作。謝謝大家的幫助,你們這些人是巨大的。
import bulletproof.*;
public class A26_1 {
public static void main(String[] args) {
BPScanner kb = new BPScanner();
String reservedWordToCheck = kb.getStringFromUser("Enter a word to see if it's reserved or enter leave: ");
System.out.println(ReservedWordChecker(reservedWordToCheck));
}
public static String ReservedWordChecker(String reservedWordToCheck) {
String[] table = {
"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const",
"continue", "default", "do", "double", "enum", "extends", "final", "finally", "float",
"for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native",
"new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super",
"switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while"
};
while (true) {
if (reservedWordToCheck.equalsIgnoreCase("leave"))
break;
boolean found = false;
for (int i=0; i < table.length; i++) {
if (reservedWordToCheck.equalsIgnoreCase(table[i])) {
found = true;
break;
}
if (found)
System.out.println("Yeah, " + reservedWordToCheck + ", is reserved as a Java identifier.");
else
System.out.println("Nope, the word " + reservedWordToCheck + ", isn't reserved. Go hog wild.");
}
System.out.println("OK BYE");
} return reservedWordToCheck;
}
}
一般輸入?就好像我在這個清單上寫了一個字,它應該匹配並且說「是」,然後單詞「是一個保留字」。程序會根據方法中提供的列表進行檢查。我希望澄清事情。 – user1752197
嗨,一個好的做法是使用字符串相等函數,如下所示:if(「leave」.equalsIgnoreCase(reservedWordToCheck))。這樣做可以防止發生NullPointerException。如果reservedWordToCheck爲null,則我們期望條件爲false,但可避免RuntimeException。 – sgroh
你也應該考慮修改你的代碼只有一個循環,你不需要外部的while循環。如果之前爲和最後你可以簡化你的代碼,如果(表[i] .equalsIgnoreCase(reservedWordToCheck)){返回reservedWordToCheck;}。另外請記住,在您的方法之外將String [] Table聲明爲常量不是每次使用ReservedWordChecker時都需要創建一個新實例。我也認爲這個方法叫做existsReservedWord,可以返回一個布爾值,而不是你正在搜索的單詞。 – sgroh