首页 > 解决方案 > 我如何使(如果条件)只接受数字?

问题描述

我想把 if () 条件加长,这样用户只能输入数字,如果他输入字符串或字符,就会出现错误。

    System.out.print("Determine the length of array> ");
    int length = input.nextInt();

标签: java

解决方案


您可以使用 java 正则表达式,它只看数字

^[0-9]*$ 

所以让我们检查一下这是否有效,

public static void main(String[] args) {
    boolean valid = false;
    String regexForNumbers = "^[0-9]*$";

    Scanner scanner = new Scanner(System.in);
    while (!valid) {
        System.out.print("Input Value:");
        String s = scanner.nextLine();
        
        if(!s.matches(regexForNumbers)){
           valid= false;
           System.out.println("Not only Numbers, try again\n");
        }else{
            valid = true;
            System.out.println("Only Numbers:"+ s);
        }
    }
}

所以如果用户输入只包含数字,执行就会结束,否则会一直要求用户输入,这个简单逻辑的输出就是。

Input Value:maneesha
Not only Numbers, try again

Input Value:maneesha123
Not only Numbers, try again

Input Value:123
Only Numbers:123

推荐阅读