Несколько разделителей в классе сканера Java - PullRequest
14 голосов
/ 04 февраля 2011

Как использовать метод useDelimiter() класса Scanner для использования в качестве разделителей запятой (,) и символа новой строки (\ n)?

Я анализирую некоторый текст из CSV-файла.

Ответы [ 5 ]

18 голосов
/ 04 февраля 2011
 Scanner s = new Scanner("hello, world \n hello world");
 s.useDelimiter(",|\\n");
 while(s.hasNext()){
          System.out.println(s.next());

 }

выход

hello
 world 
 hello world
7 голосов
/ 04 февраля 2011

Как насчет useDelimiter(",|\\n");

1 голос
/ 04 февраля 2011

useDelimiter принимает шаблон регулярного выражения, поэтому это будет что-то вроде ",|\n"

0 голосов
/ 28 июля 2017

Использование Scan Delimiters для файлов Excel - не забывайте о RegEx.В моем случае файл excel ограничивается символом '|'.Я тратил значительное время на синтаксический анализ строк с помощью scanner.useDelimiter ("|") и получал символ за символом.Замена на scanner.useDelimiter ( "\\ |" ) решила мою проблему!

0 голосов
/ 11 мая 2017

Джигар абсолютно прав.Но если это не сработает, попробуйте ",|\\r"

, так как большинство текстовых файлов имеют \ r \ n вместо \ n

...