C # 'da Java gibi Environment.Newline gibi tanımlanmış bir Newline sabiti var mı?


199

C # 'statik özelliği vardır Environment.Newline çalışan platformuna bağlı değişti.

Java'da benzer bir şey var mı?


2
Teknik olarak şu soruyu sormalısınız: Java, oluşturulduğu zaman c # 'nin Environment.Newline olarak uygulandığı newLine özelliğini nasıl temsil eder
Peter

5
Şimdi ifademi tekrar okuduğum için neden kendimi de merak ediyorum ben ne düşündüğümü merak ediyorum
Peter

Yanıtlar:



88

Java 7'den itibaren:

System.lineSeparator()

Java API'sı: System.lineSeparator

Sisteme bağlı satır ayırıcı dizesini döndürür. Her zaman aynı değeri döndürür - system özellik line.separator öğesinin başlangıç ​​değeri. UNIX sistemlerinde "\ n" döndürür; Microsoft Windows sistemlerinde "\ r \ n" döndürür.


60

Bu mülkün birçok insanın düşündüğü kadar yararlı olmadığını unutmayın. Örneğin, uygulamanızın bir Windows makinesinde çalışması, okuduğu dosyanın Windows tarzı satır ayırıcıları kullanacağı anlamına gelmez. Birçok web sayfası, farklı kaynaklardan bir araya getirilmiş "\ n" ve "\ r \ n" karışımlarını içerir. Metni bir dizi mantıksal satır olarak okurken, her zaman üç satır ayırıcı stilin üçünü de aramalısınız: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") ve OSX öncesi Mac ("\ r").

Eğer olduğunuzda yazma metin, daha fazla dosya üzerinde çalışan hangi platform daha nasıl kullanılacağını ile ilgili olmalıdır. Örneğin, insanların dosyayı Windows Not Defteri'nde okumasını beklerseniz, yalnızca tek bir tür ayırıcıyı tanıdığı için "\ r \ n" kullanmalısınız.


OSX öncesi Mac ("\ r") hala pratik olarak kullanılıyor mu? Yoksa güvenli bir şekilde "unutulabileceğini" söylemek doğru mu?
Pacerier

6
Makinelerin kendileri hala kullanımda olsun ya da olmasın, OSX öncesi Mac'lerde yazılmış hala belgeler olduğunu varsaymalısınız . Bunun kısaltmak için cazip biliyorum (?:\r?\n|\r)için (?:\r?n), ama hayır, güvenli olduğunu sanmıyorum. (?:\r\n|[\r\n])Yine de tercih ederim ; Daha fazla karakter olduğunu biliyorum, ama daha temiz görünüyor. : D Kaç çizgi ayırıcı kullandığınız önemli değilse , [\r\n]+gayet iyi çalışır.
Alan Moore
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.