Читая текстовый файл со сканером, я хочу только иметь определенное количество информации. все остальное, чего я не хочу иметь.
Пример:
1)
Брюгге, Бельгия, Антверпен, Бельгия, 107 км
OUTPUT → String city1 = Брюгге, String city2 = Антверпен, Двойное расстояние = 107
2)
Брюгге, Бельгия, Брюссель, Бельгия, 105 км
OUTPUT → String city1 = Брюгге, String city2 = Брюссель, Двойное расстояние = 105
3)
Иксель, Бельгия, Шарлеруа, Бельгия, 71,6 км
OUTPUT → String city1 = Ixelles, String city2 = Шарлеруа, Двойное расстояние = 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: метод, который помещает информацию в карту. TweeSteden: объект, который содержит два города как строки.
Танки для помощи.
lineScanner.skip(", Belgium;");
что java docs говорит для метода skip
,
skip (java.util.regex.Pattern) работают независимо от шаблона разделителя. Эти методы будут пытаться соответствовать указанному шаблону без учета разделителей на входе и, следовательно, могут использоваться в особых случаях, когда разделители не имеют отношения. Эти методы могут блокировать ожидание большего ввода.
Раньше вы пытались сопоставить шаблон с public Scanner skip(Pattern pattern)
и именно поэтому была NoSuchElementExeption
.
поэтому public Scanner skip(String pattern)
будет искать пропущенную строку.
Чтобы узнать больше об этих методах, посмотрите документы
Надеюсь это поможет!!