1
我放棄了。我想弄清楚爲什麼我的代碼返回第一個(不正確的)值。如何從掃描儀返回有效的輸入?
例如:
public static String lastName() {
System.out.println("Last Name: ");
String lastName = input.nextLine();
String dataCheck = "[a-zA-Z]{1,77}";
Pattern pattern = Pattern.compile(dataCheck);
Matcher patternMatcher = pattern.matcher(lastName);
if(!patternMatcher.matches()){
do{
System.out.println("Incorrect input:\n"
+ "1) Shorten the first name less than 77 characters;\n"
+ "2) Only alphabet characters are allowed (no numbers or special characters.)\n\n"
+ "Please enter Last Name: ");
lastName();
}
while (!patternMatcher.matches());
}
return lastName;
}
public static void recall(String lastName){
System.out.println(lastName);
}
會發生什麼事,如果我輸入了不正確的輸入,掃描儀「專賣店」的第一個輸入,只使用它;如果輸入正確,則繼續。迄今爲止的研究告訴我要廢除正則表達式,並使用input.hasNextLine()。任何幫助,將不勝感激。
它的工作!我不知道你可以返回一種方法!我肯定有代碼修改。謝謝!! – user130110
這是jon飛碟誰回答你ofc它會工作! – QuakeCore
@ user130110:它不返回方法 - 它返回方法調用返回的值。如果這對你來說是新的,我會強烈建議你放下正則表達式,並且稍微學習一點這個語言的核心。即使小修改起作用,這並不意味着它是最好的方法 - 請仔細閱讀其餘答案。 –