有 Java 编程相关的问题?

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

JAVAutil。扫描程序无法从java中的控制台获取输入

我是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) 个答案

  1. # 1 楼答案

    我尝试了相同的代码,但没有错误,它成功地执行了。我认为你在输入信息时犯了错误。这就是输入的方式:

    enter image description here

    由于第一个输入是两个,因此它将在循环中请求两个输入,然后当您传递循环的第一个输入时,它将依次打印出三个整数,并在末尾打印出剩余的字符串。循环的第二个输入也是如此

    注意String string = sc.nextLine();将为您提供字符串,因此最后一个数字之前的空格也将在string

    希望这有帮助