【问题标题】:System.lineSeparator() returns nothingSystem.lineSeparator() 不返回任何内容
【发布时间】:2015-11-06 04:42:04
【问题描述】:

当我使用以下内容时应该看到什么?

System.out.println("LineSeperator1: "+System.getProperty("line.separator"));
System.out.println("LineSeperator2: "+System.lineSeparator());

我得到以下回复:

LineSeperator1: 

LineSeperator2: 

它是空的吗?无形的?应该有\r or \n之类的东西吗?

我使用的是 windows 7、eclipse 和 jdk 1.8。

【问题讨论】:

  • 它增加了一个新行。它不显示转义字符。相反,它会做自己的行为
  • \n 是换行符,您不希望看到换行符吗?
  • 打印可能不可见的东西的好建议:打印周围可见的东西,例如 println("thingy is: ");
  • @Jägermeister +1 确实。或者使用调试器检查值。这将显示实际的字节数组。
  • 好的,谢谢。我想替换所有 lineSeparator,因此我需要知道 lineSeparator 在特定环境中的外观。是\n还是\r还是\r\n...

标签: java newline linefeed


【解决方案1】:

如您所料,行分隔符包含特殊字符,例如'\r''\n',它们表示行尾。然而,尽管它们将使用带有反斜杠转义序列的 Java 源代码编写,但它们在打印时不会以这种方式出现。行分隔符的目的是分隔行,例如,

System.out.println("Hello"+System.lineSeparator()+"World");

Hello
World

而不是说

Hello\nWorld

您甚至可以在代码的输出中看到这一点:

System.out.println("LineSeperator1: "+System.getProperty("line.separator"));

在下一条语句的输出之前有一个额外的空白行,因为System.getProperty("line.separator")println 之间有一个行分隔符。


如果您真的想查看转义版本的行分隔符是什么样的,您可以使用Apache Commons 中的escapeJava。例如:

import org.apache.commons.lang3.StringEscapeUtils;

public class LineSeparators {
    public static void main(String[] args) {
        String ls1 = StringEscapeUtils.escapeJava(System.getProperty("line.separator"));
        System.out.println("LineSeperator1: "+ls1);
        String ls2 = StringEscapeUtils.escapeJava(System.lineSeparator());
        System.out.println("LineSeperator2: "+ls2);
    }
}

在我的系统上,这个输出

LineSeparator1: \n
LineSeparator2: \n

请注意,我必须在与来自the Apache download 的 .jar 文件相同的文件夹中运行它,使用这些命令编译和运行

javac -cp commons-lang3-3.4.jar LineSeparators.java
java -cp commons-lang3-3.4.jar:. LineSeparators

【讨论】:

    【解决方案2】:

    之后打印一些东西会显示效果:

    System.out.println("a" + System.lineSeparator() + "b");
    

    给予

    a
    b
    

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 2019-04-06
      • 2012-02-15
      • 2020-09-07
      • 2021-11-22
      • 2013-11-14
      • 2014-03-23
      • 2012-08-25
      • 1970-01-01
      相关资源
      最近更新 更多