【问题标题】:Unable to take input from console in java无法从java中的控制台获取输入
【发布时间】:2018-08-27 03:18:35
【问题描述】:

我是 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)

【问题讨论】:

  • @Soumaya - 编辑:添加了一个缺失的大括号并格式化了输入。

标签: java java.util.scanner


【解决方案1】:

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

由于第一个输入是两个,所以它会在循环中要求两个输入,然后当你传递循环的第一个输入时,它会依次打印出 3 个整数和最后的剩余字符串。循环的第二个输入也是如此。

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多