Дополнительные возвраты каретки при чтении CSV

У меня есть несколько CSV-файлов, которые я пытаюсь проанализировать с помощью Java. Сначала я извлекаю одну строку из файла CSV и отправляю ее другому методу для обработки с помощью следующего кода:

for (String tempFile : filesToBeRead) {
        File csvFile = new File(tempFile);
        Scanner scanner =  new Scanner(csvFile);            
        scanner.useDelimiter("[\n\r]");
        scanner.next();         
        while(scanner.hasNext()) {
            String temp = scanner.next();
            System.out.println(temp);
//          dataStorage.enterRow(temp);

            }
        }

Вывод вышеуказанного кода:

AI277|DEL|MUB|05-12-2013|0600|4.10|5500|Y|EB

AI279|DEL|MUB|10-12-2013|0630|4.30|4900|Y|E

AI289|DEL|MUB|10-12-2013|0830|4.00|5650|Y|EB

AI278|DEL|MUB|17-12-2013|1830|4.20|5300|Y|E

AI278|DEL|MUB|20-12-2013|1430|3.45|6500|N|EB

Где, как результат должен был быть:

AI277|DEL|MUB|05-12-2013|0600|4.10|5500|Y|EB    
AI279|DEL|MUB|10-12-2013|0630|4.30|4900|Y|E    
AI289|DEL|MUB|10-12-2013|0830|4.00|5650|Y|EB    
AI278|DEL|MUB|17-12-2013|1830|4.20|5300|Y|E
AI278|DEL|MUB|20-12-2013|1430|3.45|6500|N|EB

Что именно происходит и откуда происходит этот дополнительный возврат каретки (\r), даже если регулярное выражение задано соответствующим образом?

1 ответ

Приведенное ниже регулярное выражение будет соответствовать одному или нескольким символам перевода строки или возврата каретки,

"[\n\r]+"

Просто установите приведенное выше регулярное выражение в качестве разделителя. Это изменить это scanner.useDelimiter("[\n\r]"); линия к,

scanner.useDelimiter("[\n\r]+");
Другие вопросы по тегам