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()
应该怎么写?

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

不是用完scanner.next()之后并不会跳到下一行,必须用nextLine()来跳到下一行吗
去掉scanner.nextLine()还是读不到最后一个0