有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java扫描器前瞻

有没有办法实现扫描仪。hasNextInt()以便它不仅可以检查i+1令牌,还可以检查i+2令牌?我正在寻找一种方法来检查两个输入是否都是数字,而不必打印两次相同的错误消息

输入应为以下格式:

1 2

我试图提醒用户,如果输入的是表单

1 a, a 1, a a, aa aa, 1a 1, etc...

我希望它是什么样子:(不这样工作)

            int pile1, pile2;

        // the second call to reader.hasNextInt() would be verifying pile2 to be int
        if (reader.hasNextInt() && reader.hasNextInt())
        {
            pile1 = reader.nextInt();
            pile2 = reader.nextInt();
        }
        else
        {
            System.out.println("Your input is malformed. Try again");
        }

我目前拥有的:

                int pile1, pile2;
                if (reader.hasNextInt())
                    pile1 = reader.nextInt();
                else
                {
                   System.out.println("Your input is malformed. Try again");
                    return;
                }

                if (reader.hasNextInt())
                    pile2 = reader.nextInt();
                else
                {
                   System.out.println("Your input is malformed. Try again");
                    return;
                }

共 (1) 个答案

  1. # 1 楼答案

    你可以用

    hasNext(String pattern) this method returns true if the next token matches the pattern constructed from the specified string.

    public static void main(String[] args) {
    
        Scanner reader = new Scanner(System.in);
        List<Integer> data = new ArrayList<Integer>();
        System.out.println("input count of numbers to inputed:\t");
        int limit = 0;
        if (reader.hasNext("\\d+")) {
            reader.nextInt();
        } else {
            System.out.println("wrong input");
            return;
        }
        System.out.println("please input data:\t");
    
        for (int i = 0; i < limit; i++) {
    
            if (reader.hasNext("\\d+")) {
                data.add(reader.nextInt());
            } else {
                System.out.println("Your input is malformed. Try again");
                break;
            }
        }
    
        reader.close();
    
    }
    

    假设:由于您需要停止扫描,所以必须设置预定义的限制或循环的特殊退出条件