我一直认为line.separator
和\n
和做的事情是一样的,它是。但我注意到,这两个值实际上是不一样的(也许甚至还没有接近?)当我测试此代码:“line.separator”的实际值是多少?
String str1 = System.getProperty("line.separator");
String str2 = "\n";
System.out.println(str1.equals(str2)); // output:false (as expected)
然后我检查两者的长度:
System.out.println(str1.length()); //output: 2
System.out.println(str2.length()); //output: 1
知道为什么str1.length()
是2
,我尝试这样做:
System.out.println("**"+str1.charAt(0)+"**");
输出:
**
System.out.println("##"+str1.charAt(1)+"##");
输出:
##
##
所以我注意到,在line.separator
实际换行符是第二个字符。那么第一个索引中的值是多少,因为它应该打印****
(atleast),而其打印**
取而代之?
它在不同的操作系统上有所不同。 Windows是'\ r \ n'。 –