Java 无法使用扫描仪读取特定信息的问题

Java 无法使用扫描仪读取特定信息的问题,java,Java,当用扫描仪读取文本文件时,我只想获得一定数量的信息。剩下的我都不想要了 例如: 1) 比利时布鲁日;比利时安特卫普;107公里 输出-->字符串城市1=布鲁日,字符串城市2=安特卫普,双距离=107 2) 比利时布鲁日;比利时布鲁塞尔;105公里 输出-->字符串城市1=布鲁日,字符串城市2=布鲁塞尔,双距离=105 3) 比利时伊克塞尔;比利时沙勒罗;71.6公里 输出-->字符串city1=Ixelles,字符串city2=Charleroi,双距离=71.6 我发现: while (

当用扫描仪读取文本文件时,我只想获得一定数量的信息。剩下的我都不想要了

例如:

1)
比利时布鲁日;比利时安特卫普;107公里
输出-->字符串城市1=布鲁日,字符串城市2=安特卫普,双距离=107

2)
比利时布鲁日;比利时布鲁塞尔;105公里
输出-->字符串城市1=布鲁日,字符串城市2=布鲁塞尔,双距离=105

3)
比利时伊克塞尔;比利时沙勒罗;71.6公里
输出-->字符串city1=Ixelles,字符串city2=Charleroi,双距离=71.6

我发现:

while (scanner.hasNextLine()) {
    Scanner lineScanner = new Scanner(scanner.nextLine());
    String city1 = lineScanner.next();
    lineScanner.skip(", Belgium;");
    String city2= lijnScanner.next();
    lineScanner.skip(", Belgium;");
    double km = Integer.parseInt(lineScanner.next());
    lineScanner.skip(" km");
    this.voegToe(new TweeSteden(city1, city2),km);
    lineScanner.close();
}
Voegtoe:将信息放入地图的方法。 Twesteden:包含两个城市作为字符串的对象

坦克的帮助。

lineScanner.skip(“,比利时;”)

java文档对
skip
方法的描述

skip(java.util.regex.Pattern)方法独立于分隔符模式运行。这些方法将尝试匹配指定的模式,而不考虑输入中的分隔符,因此可以在分隔符不相关的特殊情况下使用。这些方法可能会阻止等待更多输入。


以前,您试图通过
公共扫描程序跳过(模式模式)
来匹配模式,这就是抛出
NoTouchElementExeption
的原因

因此,
公共扫描程序跳过(字符串模式)
将查找要跳过的字符串

要了解更多关于这些方法的信息,请查看


希望这有帮助

您的问题是什么?如何更改代码使其正常工作?现在我在:lineScanner.skip(“,比利时”)上得到一个错误。我想在第一个城市读书,然后“比利时”不。然后城市2和“比利时”不是。最后,我需要的是距离(双精度),但不是“km”。它会引发什么错误?在输入中找不到指定的模式。因此,请不要使用特殊字符。类似这样的
lineScanner.skip(“比利时”)