2008-10-29 68 views
160

在C#中有根據運行平臺而變化的靜態屬性Environment.Newline是否有像Java中的Environment.Newline在Java中定義的Newline常量?

Java中是否有類似的東西?

+2

技術上你應該問:Java是如何代表c#實現的newLine屬性作爲Environment.Newline創建時 – Peter 2008-10-29 14:53:08

+0

@Peter呃......爲什麼? – Basic 2015-12-10 12:55:55

+1

現在我重讀了我的聲明,我想知道爲什麼我自己也想知道我在想什麼 – Peter 2015-12-16 10:32:55

回答

54

請注意,此屬性不如許多人認爲的那樣有用。例如,僅僅因爲你的應用程序在Windows機器上運行,並不意味着它正在閱讀的文件將使用Windows風格的行分隔符。許多網頁包含「\ n」和「\ r \ n」的混合,已經從不同的來源拼湊而成。當您將文本看作一系列邏輯行時,應該始終查找所有三種主要的行分隔符樣式:Windows(「\ r \ n」),Unix/Linux/OSX(「\ n」)和pre-OSX Mac(「\ r」)。

當你編寫文本時,你應該更關心文件的使用方式,而不是你運行的平​​臺。例如,如果您希望人們在Windows記事本中讀取文件,則應該使用「\ r \ n」,因爲它只能識別一種分隔符。

70

從Java 7:

System.lineSeparator() 

Java API : System.lineSeparator

返回系統相關的在線分離器的字符串。它總是返回 相同的值 - 系統屬性 line.separator的初始值。在UNIX系統上,它返回「\ n」;在Microsoft Windows 系統上,它返回「\ r \ n」。