Проблема с не чтения конкретной информации с помощью сканера

1

Читая текстовый файл со сканером, я хочу только иметь определенное количество информации. все остальное, чего я не хочу иметь.

Пример:

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: объект, который содержит два города как строки.

Танки для помощи.

  • 0
    какой твой вопрос здесь?
  • 0
    Как я могу изменить свой код, чтобы он работал? Теперь я получаю сообщение об ошибке: lineScanner.skip (", Бельгия"). Я хочу читать в первом городе, затем "Бельгия" нет. Тогда city2 и "Бельгия" нет. Наконец мне нужно расстояние (двойное), но не «км».
Показать ещё 5 комментариев
Теги:

1 ответ

1
Лучший ответ

lineScanner.skip(", Belgium;");

что java docs говорит для метода skip,

skip (java.util.regex.Pattern) работают независимо от шаблона разделителя. Эти методы будут пытаться соответствовать указанному шаблону без учета разделителей на входе и, следовательно, могут использоваться в особых случаях, когда разделители не имеют отношения. Эти методы могут блокировать ожидание большего ввода.

Раньше вы пытались сопоставить шаблон с public Scanner skip(Pattern pattern) и именно поэтому была NoSuchElementExeption.

поэтому public Scanner skip(String pattern) будет искать пропущенную строку.

Чтобы узнать больше об этих методах, посмотрите документы

Надеюсь это поможет!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню