Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java System.lineSeparator()不返回任何内容_Java_Newline_Linefeed - Fatal编程技术网

Java System.lineSeparator()不返回任何内容

Java System.lineSeparator()不返回任何内容,java,newline,linefeed,Java,Newline,Linefeed,当我使用以下内容时,我应该看到什么 System.out.println("LineSeperator1: "+System.getProperty("line.separator")); System.out.println("LineSeperator2: "+System.lineSeparator()); 我得到以下回复: LineSeperator1: LineSeperator2: 是空的吗?看不见的是否应该有类似于\r或\n的内容 我使用的是windows 7、eclip

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

System.out.println("LineSeperator1: "+System.getProperty("line.separator"));
System.out.println("LineSeperator2: "+System.lineSeparator());
我得到以下回复:

LineSeperator1: 

LineSeperator2: 
是空的吗?看不见的是否应该有类似于
\r或\n
的内容


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

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

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


正如您所期望的,行分隔符包含表示行尾的特殊字符,如
'\r'
'\n'
。然而,尽管它们是用带有反斜杠转义序列的Java源代码编写的,但它们在打印时并不是这样显示的。行分隔符的用途是分隔行,例如

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

而不是说

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

System.out.println("Hello"+System.lineSeparator()+"World");
System.out.println("LineSeperator1: "+System.getProperty("line.separator"));
在下一条语句的输出之前有一个额外的空行,因为有一个来自
System.getProperty(“line.separator”)
的行分隔符,另一个来自
println
的使用


如果您确实想查看转义版本的行分隔符是什么样子的,可以使用from。例如:

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
注意,我必须在与.jar文件相同的文件夹中运行它,并使用这些命令编译和运行

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

它增加了一条新的路线。它不显示转义字符。相反,它会执行其行为
\n
是一条换行符,您不希望看到换行符吗?打印潜在的看不见的东西的好建议:打印附近可见的东西,如println(“thingy is:”)@Jägermeister+1确实如此。或者,使用调试器检查该值。这将显示实际的字节数组。我想替换所有的lineSeparator,因此我需要知道lineSeparator在特定环境中的外观。是\n还是\r或\r\n。。。