Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法赢得';t返回更新的字符串_Java_String_Methods_Return Value - Fatal编程技术网

Java 方法赢得';t返回更新的字符串

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

我有一个方法,可以从用户那里获取字符串输入并验证4件事:

它只有一个单词,不包含空格,不包含数字,也不为空/按了enter键

如果出现上述任何问题,则会打印错误消息,并再次调用该方法以重新提示用户输入。如果字符串满足要求,则方法返回字符串

在大多数情况下,该方法按预期工作,但是,如果我第一次输入错误的响应,那么即使在它提示我错误并输入正确响应后,它仍会返回我第一次输入的错误响应。有人能解释一下为什么会这样吗

    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研究正则表达式以进行模式匹配。