java - 当用户按没有值的回车键时,如何在java中显示int的空消息

标签 java

我试图在为 java 中的 switch 语句输入整数数据时为用户创建验证。我的代码是:

//Checks if inputed value is number or String
    public void valsInt(String entry){
        if(in.hasNextInt()){
            setUserInputInteger(in.nextInt());
            //System.out.println("valInt = Correct");
            setIsTrue(true);
        }else{
            if(in.hasNextLine()){
                setUserInputString(in.nextLine());
                System.out.println("`"+getUserInputString()+"` IS AN INVALID ENTRY. YOU CAN ONLY ENTER DIGITS FOR THE " + entry);
                setIsTrue(false);

            }
        }

    }

此代码的作用是提示用户输入一个整数,如果是整数,则将变量“userInputInteger”设置为输入数据,循环将停止,但如果用户输入字符串,则用户将收到一条消息表明这不是有效的输入,因为它是一个字符串。我试图在单击 Enter 按钮时创建一条错误消息,但内部没有值,但“in.hasNextInteger”无法将其拾取,因为它不是整数,因此不会移至 if 语句的其他部分。 。 有没有人对此有任何想法

提前致谢

最佳答案

实现这一目标的一种方法是:

  1. 用 try-catch 语句包围您的方法,以避免使用 hasNextInt()
  2. 用 if 语句包围您的方法,以验证条目是否为空

像这样:

public void valsInt(String entry){
    if(!entry.trim().isEmpty()){
        try{
            int number = Integer.parseInt(entry);
            setIsTrue(true);
        }catch(NumberFormatException e){
            System.out.println("`"+getUserInputString()+"` IS AN INVALID ENTRY. YOU CAN ONLY ENTER DIGITS FOR THE " + entry);
            setIsTrue(false);
        }
    }else{
        System.out.println("THE ENTRY IS EMPTY");
    }
}

关于java - 当用户按没有值的回车键时,如何在java中显示int的空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077705/

相关文章:

java - 在 Maven 项目中找不到 ImmutableMap

java - Android sdk,检查SD卡上是否存在两个或多个文件

java - 我想在文本字段中输入 1 到 15 之间的数字

java - Firebase 登录 - 加载卡住

java - 当我将函数 setVisible (View.gone) 应用于适配器时,如何从与适配器对应的列表中删除空格?

java - onReceivedClientCertRequest 未被调用

c# - 何时保存设置?

java - 在java客户端中使用@POST请求发送参数

java - 发送 HttpPost 到服务器;无需回应

java - 有没有办法向 InitialLdapContext 提供 SocketFactory_instance_?