Java 方法赢得';t返回更新的字符串
我有一个方法,可以从用户那里获取字符串输入并验证4件事: 它只有一个单词,不包含空格,不包含数字,也不为空/按了enter键 如果出现上述任何问题,则会打印错误消息,并再次调用该方法以重新提示用户输入。如果字符串满足要求,则方法返回字符串 在大多数情况下,该方法按预期工作,但是,如果我第一次输入错误的响应,那么即使在它提示我错误并输入正确响应后,它仍会返回我第一次输入的错误响应。有人能解释一下为什么会这样吗Java 方法赢得';t返回更新的字符串,java,string,methods,return-value,Java,String,Methods,Return Value,我有一个方法,可以从用户那里获取字符串输入并验证4件事: 它只有一个单词,不包含空格,不包含数字,也不为空/按了enter键 如果出现上述任何问题,则会打印错误消息,并再次调用该方法以重新提示用户输入。如果字符串满足要求,则方法返回字符串 在大多数情况下,该方法按预期工作,但是,如果我第一次输入错误的响应,那么即使在它提示我错误并输入正确响应后,它仍会返回我第一次输入的错误响应。有人能解释一下为什么会这样吗 public static String getName() { //
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;
}
您必须分配字符串:
tmp = getName();
这还建议@oznomal研究正则表达式以进行模式匹配。