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。。。