为了账号安全,请及时绑定邮箱和手机立即绑定

Java Scanner nextLine 问题,需要额外输入

Java Scanner nextLine 问题,需要额外输入

墨色风雨 2021-06-18 18:04:30
我正在学习Java I/O。我的代码有问题。我要打印[0, 0, 1][1, 0, 1][0, 0, 1][2, 0, 1][10, 0, 5]但是需要额外的输入。public static void main(String[] args) {    Scanner sc = new Scanner(System.in);    int tc = sc.nextInt();    sc.nextLine();    System.out.println();    for (int i = 0; i < tc; i++) {        int line = sc.nextInt();        sc.nextLine();        for (int j = 0; j < line; j++) {            System.out.println(i+""+j);            int[] st = Arrays.stream(sc.nextLine().split(" "))                    .mapToInt(Integer::parseInt).toArray();            System.out.println(Arrays.toString(st));        }    }}下面是输入和输出。我不知道为什么 [10, 0, 5] 没有显示。如果我按下回车键,则会出现 [10, 0, 5]。Input220 0 11 0 130 0 12 0 110 0 5Output[0, 0, 1][1, 0, 1][0, 0, 1][2, 0, 1](additional enter)[10, 0, 5]
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

阅读Java文档nextLine方法。

由于此方法继续搜索输入以寻找行分隔符,因此如果不存在行分隔符,它可能会缓冲所有搜索要跳过的行的输入。

这个 nextLine 调用会阻塞,直到它找到行分隔符,这是额外的输入。

int[] st = Arrays.stream(sc.nextLine().split(" "))
                    .mapToInt(Integer::parseInt).toArray();


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信