-2

我正在从一个单独的文件中读取输入,但我无法弄清楚如何压缩一堆空行而只打印一行。例如,如果我的输入文件有两个由 14 个空行分隔的段落,那么这些段落应该由一个空行而不是 14 个空行分隔作为输出。

4

2 回答 2

2

当您逐行阅读时,检查每一行以查看它是否为空白(匹配 regex^\s*$line.trim().isEmpty())。当输入行为空白时,设置一个布尔值,例如seenBlankLine为 true。如果布尔值为真,则在随后的空白行中,不要处理该行。当遇到非空行时,请记住将布尔值设置为 false。

于 2013-10-10T21:32:48.177 回答
0

逐字符读取字符并避免重复回车换行符

InputStream is = null;
char c; 
int i;

try {
   is = new FileInputStream('/path/to/file');

   StringBuffer sb = new StringBuffer();
   while ((i = is.read()) != -1) {
       c = (char)i;

       if (c == '\n' || c == '\r') {
           int length = sb.length();
           if (length == 0 || (length != 0 && sb.charAt(length - 1) != '\n')) {
               sb.append(c);
           }
       } else {
           sb.append(c);
       }     
   }
} catch (Exception e) {
   ...
}
return sb.toString();
于 2013-10-10T21:46:24.583 回答