Символ новой строки с StringReader - \n игнорируется?

У меня есть этот код:

String sampleString = "1223,4455,6667" + "\n" + "1223,4455,6667" + "\n";

BufferedReader reader = new BufferedReader(new StringReader(sampleString));
String line;
while ((line = reader.readLine()) != null) {
   if (line.trim().length() == 0) {
        continue;
   }
   logger.debug("CSVLIne:" + line);
}

Я ожидал, что он напечатает две строки. Но это показывает все в одну строчку. Что-то не так в этом коде?

3 ответа

Решение

Вам нужно убежать от этих новых строк

    String sampleString = String.format("1223,4455,6667%n1223,4455,6667%n")

Спецификатор формата%n представляет новую строку, зависящую от платформы.

Только что попробовал сам, и выше код печатает две строки на моем компьютере при использовании System.out.println для вывода.

Как уже отмечали другие, "\n" не зависит от платформы, но в соответствии с документацией BufferedReader:

Строка считается завершенной любым из перевода строки ('\n'), возврата каретки ('\r') или возврата каретки, за которым сразу следует перевод строки.

это должно быть хорошо.

Это потому, что logger.debug выводит на одной строке без перевода строки. Если вы хотите печатать в две строки, вам нужно использовать logger.debug дважды.

Другие вопросы по тегам