Java扫描仪的麻烦

时间:2020-03-24 16:54:23

标签: java input java.util.scanner

最近我开始学习Java。可能这是一个愚蠢的问题:使用'p'字符作为扫描仪的分隔符,我希望输出为

42

17

Hello World

当它

42

17

pHello World

分隔符可能会从扫描仪的令牌中排除,为什么在最后一行还打印'p'字符?

'''

public static void main(String[] args) {
    String s = "42p17pHello World";
    Scanner scan = new Scanner(s);
    scan.useDelimiter("p");
    System.out.println(scan.nextInt());
    System.out.println(scan.nextInt());
    System.out.println(scan.nextLine());
    scan.close();
}

'''

1 个答案:

答案 0 :(得分:1)

调用nextLine()会从扫描仪读取下一行,并且似乎不会在定界符处停止。将nextLine()调用替换为next()