在C#中,存在一个名为Environment.NewLine 的静态属性,它会根据运行平台而发生变化。
在Java中是否有类似的东西?
在Java中是否有类似的东西?
从Java 7(和Android API级别19)开始:
System.lineSeparator()
文档:Java平台SE 7
对于旧版本的Java,请使用:
System.getProperty("line.separator");
请参阅https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html以获取其他属性信息。
Java 7起:
System.lineSeparator()
Java API : System.lineSeparator
返回依赖于系统的换行符字符串。它始终返回相同的值 - 系统属性line.separator的初始值。在UNIX系统上,它返回"\n";在Microsoft Windows系统上,它返回"\r\n"。
请注意,这个属性并没有很多人想象中那么有用。举个例子,仅仅因为你的应用程序在Windows机器上运行,并不意味着它读取的文件一定使用Windows风格的换行符。许多网页包含混合了 \n
和 \r\n
的内容,这些内容来自于不同的来源。当你将文本作为逻辑行的系列进行读取时,你应该总是查找所有三种主要的行分隔符风格:Windows的\r\n
、Unix/Linux/OSX的\n
,以及早期的Mac的\r
。
当你编写文本时,你应该更关心文件将如何使用,而不是你运行的平台。例如,如果你希望人们在Windows记事本中阅读该文件,你应该使用\r\n
,因为它只识别一种分隔符。
(?:\r?\n|\r)
缩短为(?:\r?n)
是很诱人的,但是不,我认为这样并不安全。无论如何,我更喜欢(?:\r\n|[\r\n])
;我知道这样更多字符,但它看起来更整洁。:D 如果你不关心消耗了多少个行分隔符,[\r\n]+
也可以正常工作。 - Alan Moore\n
连接,那么在 Windows 中,在 Excel 中,用户将看到这些行为单个行而在 Ubuntu 的 LibreOffce Calc 中则会看到它们作为单独的行。 - Burst