我有一个方法可以从用户那里获取String的输入并验证4件事:
它只有1个单词,不包含空格,不包含数字,并且没有空白/按下回车键。
如果出现任何这些问题,则会打印错误消息,并再次调用该方法以重新提示用户输入。如果字符串满足要求,则方法返回String。
在大多数情况下,该方法按预期工作,但是,如果我第一次输入错误的repsonse,那么即使它提示我错误并输入正确的响应,它也会返回我第一次输入的错误响应。有人可以解释为什么会这样吗?
public static String getName() {
//Prompt User for Name and Store it as the tmp String
System.out.print("Please enter the target string here: ");
String tmp = in.nextLine();
//Check to see if the string is blank, contains more than one word, or contains numbers. If so, give error and re-prompt
if(tmp.equals("") || tmp.contains(" ") || tmp.contains("1") || tmp.contains("2") || tmp.contains("3") || tmp.contains("4")
|| tmp.contains("5") || tmp.contains("6") || tmp.contains("7") || tmp.contains("8") || tmp.contains("9") || tmp.contains("0")) {
System.out.println("\nYou entered an invalid response, please try again\n");
getName();
}
//Return the String
return tmp;
}
答案 0 :(得分:4)
您必须分配字符串:
tmp = getName();