1

我有这个代码:

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);
}

我期待它打印两行。但它显示在一行中。这段代码有什么问题吗?

4

3 回答 3

2

这是因为 logger.debug 在没有换行符的情况下输出一行。如果要在两行上打印,则需要使用 logger.debug 两次。

于 2013-07-09T17:33:50.207 回答
2

我自己试过了,上面的代码在我的机器上打印两行System.out.println用于输出。

正如其他人指出的那样,“\n”不是平台独立的,而是根据BufferedReader 文档

一行被认为是由换行符 ('\n')、回车符 ('\r') 或紧跟换行符的回车符中的任何一个终止的。

应该没问题。

于 2013-07-09T17:47:26.737 回答
1

你需要逃避那些换行符

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

%n 格式说明符引入了平台相关的换行符。

于 2013-07-09T17:37:46.117 回答