java - 如何检查用户输入的内容是否不是java中的字符串

标签 java string validation input

我希望我的程序仅接受字符串并在用户输入无效时提示消息。

import java.util.Scanner;
public class Details{

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String lastname;
        String firstname;
        String middlename;

        System.out.print("Enter Number of passenger : ");
        int passenger = input.nextInt(); 

        for(int x = 0 ; x < passenger ; x++){
            do{
                System.out.print("\nEnter Lastname  :");
                lastname = input.nextLine().trim();

                if(lastname.equals("") || lastname.equals(" "))
                {                 
                    System.out.print("\nEnter Neccessary Details");               
                }
            } while(lastname.isEmpty());

            do{
                System.out.print("\nEnter Firstname : ");
                firstname = input.nextLine();

                if(firstname.equals("") || firstname.equals(" "))
                {
                    System.out.print("\nEnter Neccessary Details");    
                }
            } while(firstname.isEmpty());

            do{
                System.out.print("\nEnter Firstname : ");
                middlename = input.nextLine();

                if(middlename.equals("") || middlename.equals(" "))
                {
                    System.out.print("\nEnter Neccessary Details");    
                }
            }while(middlename.isEmpty());

        }//end of forloop

    }
}

我已经尝试过这段代码,起初它可以工作,但从长远来看它会显示逻辑错误。 并给我一个类似这样的输出。

    sample output
    Enter Firstname  : // the problem is, it seems has already have an input
    Enter Neccessary Details
    Enter Firstname  :

那么我该如何解决这个问题呢? 有没有其他方法来验证字符串输入?请保持简单,我只是一个初学者,谢谢

最佳答案

因为 Scanner.nextInt 方法不会读取输入中的换行符, 您需要使用 nextInt 之后的行:

int passenger = input.nextInt();
input.nextLine();

这将解决似乎已经有输入问题。

参见this了解详情。

关于java - 如何检查用户输入的内容是否不是java中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60127051/

相关文章:

java - Jackson json 序列化对于整数键失败

c# - 帮助处理字符串的 C# 条件语句

java - 我如何确定我的类(class)是不可变的

javascript - Codeigniter:接受空格和符号以使用 JQuery 进行验证

java - 我该怎么做才能让我的 Madlibs 程序从此登录/密码程序访问?

java - 更改 void 方法内的变量值以便在 Java 外部使用?

Java字符串换行/缩进匹配

c++ - 在while循环或其他东西重载的运算符? C++初学者在这里

html - 转义用户通过文本字段输入的“&”符号?

php - Symfony 2 登录验证