【问题标题】:how to detect line breaks in java [closed]如何检测java中的换行符[关闭]
【发布时间】:2012-12-30 02:38:58
【问题描述】:

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

我的 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>"

应用程序似乎无法检测到评论以“table”一词结尾后有换行符。有没有办法做到这一点 ?最好不要对单词表或类似的东西进行硬编码。

哦,我发现了错误,我在早期阶段通过一些正则表达式对代码块进行了转换,这弄乱了换行符....代码块变成了一大行文本!因此没有换行符 谢谢你们的时间!

【问题讨论】:

  • "\n" 分隔符用于 Windows。您始终可以通过System.lineSeparator() 获取当前操作系统使用的行分隔符 - 如果您使用的是 Java 7。对于旧版本,您可以使用 System.getProperty("line.separator")。请注意,仅当文件是在与您相同的操作系统上创建时才有用。

标签: java text newline


【解决方案1】:

如果你的数据已经在一个字符串中:

String[] lines = string.split("\r\n|\n|\r");
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() 你的文件句柄。

【讨论】:

  • 这个还是直接用BufferedReader逐行读取文本文件。
【解决方案2】:

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

尝试使用\n 而不是/n

编辑

实际上,我只是重新阅读了您的代码。据此,您做得正确。只要确保你的实际代码是这样的。否则,此答案对您没有帮助,但可能对其他人有所帮助。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      相关资源
      最近更新 更多