【问题标题】:How to restrict user scanner input data type (java)?如何限制用户扫描仪输入数据类型(java)?
【发布时间】:2014-09-18 21:31:22
【问题描述】:

说,我希望用户只输入一个整数,而不是像“培根”这样的东西,有没有办法将用户输入限制为整数(或其他数据类型),这样我就不会收到任何错误和/或输入其他不是整数?

【问题讨论】:

  • 培根应该总是被允许的,没有例外。
  • 不在终端窗口中。您能做的最好的事情就是验证输入。
  • 你可以一直要求输入,直到用户给你一个整数。

标签: java java.util.scanner restriction


【解决方案1】:

假设您的 Scanner 的名称为 myScanner:

public static int checkMyInput () { 
    try {
        return myScanner.nextInt();
    } catch (InputMismatchException e ) {
         myScanner.next();
         System.out.println("bacon luff");
        return 0 ;
    }
}

然后你就可以调用那个方法了。

【讨论】:

    【解决方案2】:

    这是一个功能齐全的示例:

    import java.util.Scanner;
    
    public class Temp {
    
        public static void main(String[] args) {
            Scanner inp = new Scanner(System.in);
            int num = 0;
            String input = "";
            String exit = "exit";
            boolean isStringNumber = true;//If the String is not Number
    
            System.out.println("NOTE: To exit, type the word exit and press enter key");
    
            while(true){
    
                System.out.println("\nPlease enter a number only...");
                input = inp.nextLine();
    
                if(input.equalsIgnoreCase(exit)){break;}
    
                isStringNumber = input.matches("[0-9]+");//Check if no digits in string
    
                if(isStringNumber == false){
                    System.out.println("\nYou entered a non number " + input);
                    System.out.println("Remove all non numbers from your input and try again !");
                    continue;
                }else{
                    num = Integer.parseInt(input);
                    System.out.println("You entered " + num);
                }
    
            }
    
            System.out.println("Exiting program...");
    
        }
    
    }
    

    【讨论】:

    • 确实是一个写得很好的功能齐全的例子,非常感谢,我从中学到了很多,如果我有 15 个代表,我会给你一个支持 :(。这可以检查一个字符串是否只包含一个 1 位数字。但是,@user3793514 通过提供一种测试输入类型的方法,为我的问题提供了一个直接解决方案
    • @PotatoSalad - 谢谢。我很高兴你发现它很有用。如果你愿意,你可以给我 +1 :)
    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多