2013-05-27 6 views
0

Я пытаюсь использовать обе вкладки и символы новой строки в качестве разделителей для чтения из TXT-файла. То, что у меня есть на данный момент:Использование нескольких разделителей со сканером - Java

Scanner fileScanner = new Scanner(new FileReader("propertys.txt")); 

fileScanner.useDelimiter("[\\t\\n]"); 

Я пробовал:

fileScanner.useDelimiter("\\t|\\n"); 

и

fileScanner.useDelimiter("[\\t|\\n]"); 

У меня нет ни малейшего представления о том, что происходит не так, я искал вокруг много, и похоже, что один из них должен работать. Ясно, что я делаю что-то неправильно.

ответ

0

Для регулярного выражения, используемого в качестве параметра в методе useDelimiter, вы должны использовать символ новой строки, \n вместо \\n и вкладки как \t вместо \\t. Из класса Java Pattern: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html.

Часть из этого, я думаю, вы должны определить, вам регулярное выражение, как, например, это:

fileScanner.useDelimiter("\\s*[\t\n]\\s*"); 

ограничить строки (\\s) между новой строки или символы табуляции.

+0

Но так как это чтение из txt-файла, мне показалось, что мне нужна дополнительная косая черта? В любом случае это все равно не получилось, спасибо в любом случае :) – user2426260

+0

Теперь я увидел что-то еще. Я редактирую :) –

+0

Ahh все еще не работает, я думаю, что я просто подхожу к нему под другим углом, спасибо за помощь. – user2426260

1

fileScanner.useDelimiter ("\ t \\ n"); должен работать.

Если у вас есть две косые черты «\ n», первый действует как побег, и это не будет работать правильно.

Смежные вопросы