2 wo111180611 wo111180611 于 2016.01.31 10:35 提问

java Scanner nextLine() 后读不到next()

我的程序输入是有很多行 以最后一行0结束输入 每行有两个string 和一个int

 while(true){
            String s = scanner.next();
            if(s.equals("0")){
                break;
            }
            String e = scanner.next();
            int len = scanner.nextInt();
            scanner.nextLine();
            if(!map.containsKey(e)){
                map.put(e, new Node(e));
            }
            Node st = map.get(s);
            if(st.left == null){
                st.left = map.get(e);
            }else{
                st.right = map.get(e);
            }
            String newString = s + e;
            length.put(newString, len);
        }

sample input
Mines Brahmsburg 394
Mines Ninel 4
Brahmsburg Thotel 50
Brahmsburg Ninel 5
Ninel Thotel 600
0
当读完倒数第二行 scanner.nextLine()后没法读scanner.next()
应该怎么写?

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.31 11:05

测试了你的代码,是因为scanner.nextLine();这行代码的输入没有使用导致的。
去掉这行就好了,你为什么要写这行代码呢,明明没有用。

wo111180611
wo111180611 回复wo111180611: 去掉scanner.nextLine()还是读不到最后一个0
接近 2 年之前 回复
wo111180611
wo111180611 不是用完scanner.next()之后并不会跳到下一行,必须用nextLine()来跳到下一行吗
接近 2 年之前 回复
wo111180611
wo111180611   2016.01.31 11:30
不是用完scanner.next()之后并不会跳到下一行,必须用nextLine()来跳到下一行吗
去掉scanner.nextLine()还是读不到最后一个0
wojiushiwo945you
wojiushiwo945you 去掉是可以的,连续输三个值后,第四次输入0时就跳出循环了,你可以在循环外打印一句信息再测测
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!