如何检测java中的换行符

时间:2013-01-15 21:24:30

标签: java text newline

是的,我已经阅读了其他一些关于换行符的帖子,但他们没有帮助我。

我的Java程序应该读取.PHP文件并将源代码拆分为逐行格式。问题是我似乎无法真正区分一个换行符。

我试图使用/ n没有工作.... 我试图使用/ r / n没有工作.....

这是一个例子

step_B = step_A.replaceAll("\n", "XXX");

我试图用单词XXX替换换行符,但它没有用。

这里是我要分割的php的一个示例,我设法将这些行分开使用;作为分隔符,但我现在要进一步完善它。

$ALL_AUTH = mysql_fetch_row($author_lookup);
    //preparing to display the output in the table
    echo "<tr>";

我希望它输出类似这样的东西

INFO:  $ALL_AUTH = mysql_fetch_row($author_lookup)

INFO:  //preparing to display the output in the table 

INFO:  echo "<tr>"

但我得到了这个

INFO:  $ALL_AUTH = mysql_fetch_row($author_lookup)

INFO:  //preparing to display the output in the table  echo "<tr>"

在评论结束于&#34; table&#34;后,应用似乎无法检测到有换行符。有没有办法做到这一点 ?最好不要对单词表或类似的东西进行硬编码。

哦,我发现了这个错误,我在早期阶段对代码块使用了一些正则表达式的变换,这搞乱了新行......代码块变成了一个庞大的文本行!因此没有换行符 谢谢你的时间!

3 个答案:

答案 0 :(得分:18)

如果数据已经包含在字符串中:

String[] lines = string.split("\r\n|\r|\n");
for (String line : lines) {
    System.out.println(line);
}

或直接从文件中读取行:

BufferedReader br = new BufferedReader(new FileReader("myfilename"));
String line = null;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}

Java 7+有一种直接从文件系统读取行的便捷方法:

Path path = FileSystems.getDefault().getPath("myfilename");
List<String> lines = Files.readAllLines(path, Charset.defaultCharset());
for (String line : lines) {
    System.out.println(line);
}

Java不执行自动字符集检测,因此您负责在读取文本文件时正确设置字符集;否则可能无法正确读取字符。别忘了保持整洁:.close()你的文件处理。

答案 1 :(得分:1)

根据您用来阅读PHP的Java类,使用BufferedReader.readLine之类的内容。它会为您抓取一行文字,而不必担心\n\r\n疯狂。

答案 2 :(得分:0)

我相信我有一个解决方案。你是对的,/ n什么都不做。但是,java使用\n分隔行。请注意反斜杠而不是斜杠。

尝试使用\n代替/n

修改

实际上,我只是重新阅读你的代码。据说你做得很好。只需确保您的实际代码是这样的。否则,这个答案对你没有帮助,但它可以帮助别人。