无法从Java中的控制台获取输入

时间:2018-08-27 03:18:35

标签: java java.util.scanner

我是Java新手,在从控制台获取输入时遇到了问题。

这是我的代码:

import java.util.*;

class solution {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        System.out.println(t);
        for (int n = 0; n < t; n++) {
            for (int i=0;i<4;i++){
                    int mzeroes  = sc.nextInt();
                    int nones = sc.nextInt();
                    int stringLength = sc.nextInt();
                    String string=sc.nextLine();
                    System.out.println(mzeroes);
                    System.out.println(nones);
                    System.out.println(stringLength);
                    System.out.println(string);
            }
        }
    }
}

输入

2

2 2 8 11101000

3 4 16 0110111000011111 

错误:

Exception in thread "main" java.util.InputMismatchException: For input string: "0110111000011111"
    at java.util.Scanner.nextInt(Scanner.java:2123)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at solution.main(solution.java:13)

1 个答案:

答案 0 :(得分:0)

我尝试了相同的代码,但是没有错误,并且成功执行了。我认为您在提供输入信息时犯了错误。这是必须提供输入的方式:

enter image description here

由于第一个输入为两个,因此它将在循环中要求两个输入,然后当您为循环传递第一个输入时,它将依次打印出那里的3个整数,最后打印其余的字符串。循环的第二个输入也是如此。

注意String string = sc.nextLine();将为您提供字符串,以便最后一个数字之前的空格也将被占用在string中。

希望这会有所帮助。