java useDelimeter, разделенный на - - PullRequest
2 голосов
/ 12 апреля 2020

Я пытаюсь проанализировать текстовый файл, который выглядит как

A - 19
B - 2
C - 3

, и я использую метод сканера, чтобы прочитать его и разделить на "-", чтобы мой вывод был похож на:

A
19
B
2
C
3

, однако, похоже, что он не разделяется правильно. Вот как выглядит эта часть кода:

Scanner s = new Scanner(fileName).useDelimiter("\\s*-\\s*");
System.out.println(s.next());
System.out.println(s.next());

s.close();

Я ожидаю, что это будет выглядеть так:

A
19

, но мой вывод:

A
19
B

Ответы [ 2 ]

2 голосов
/ 12 апреля 2020

Вы должны использовать это регулярное выражение для разделителя:

Scanner s = new Scanner(fileName).useDelimiter("\\s*-\\s*|\\R+");

Где \R+ соответствует 1 или более разрывам строки любого типа.

0 голосов
/ 12 апреля 2020
  public static void main(String[] args) throws FileNotFoundException {
    String fileName = "C://temp//split.txt";
    try (Scanner s = new Scanner(new File(fileName)).useDelimiter(" - ")) {
      while(s.hasNext()) {
        System.out.println(s.next());
      }
    }
  }
...