# Java line separator (evtl nur in TextComponents...)



## Mujahiddin (17. Jul 2012)

Frage ist:
Warum ist der Line Separator in Java nicht einheitlich?
Wenn ich in ein JTextArea 
	
	
	
	





```
System.lineSeparator()
```
 unter Windows einfüge, muss ich mit der Tastatur zwei Zeichen überbrücken. Drücke ich jedoch meine Enter-Taste, spuckt die Methode 
	
	
	
	





```
textArea.getText().contains(System.lineSeparator());
```


```
false
```
 aus. Woran liegt das? Warum ist es nicht einheitlich? Ist das nur bei JTextComponent? Was sind die Richtlinien? Hab im Internet nach bisschen recherchieren nix gefunden.

Grüße!


----------



## Flown (17. Jul 2012)

Also wenn du richtig recherchiert hättest, dann hättest du sicher gefunden, dass das mit einem Zeilenumbruch nicht Java-spezifisch ist sonder von der OS abhängt:

Also Linux: "\n"
Windows: "\r\n"


IMO gibt deine Methode false zurück, weil bei einem Druck auf Enter nur ein "\n" eingefügt wird und nicht "\r\n".


----------



## Mujahiddin (17. Jul 2012)

Das weiß ich selbst auch.
Und unter MacOS ist es "\r".
Aber wenn ich ein JTextArea unter Windows initiiere mit dem Vorgegebenen Text 
	
	
	
	





```
"Erste Zeile" + System.lineSeparator() + "Zweite Zeile";
```
, dann muss ich mit meiner Tastatur *zwei* Zeichen überbrücken, wenn ich über die Zeile fahre. Wenn ich jedoch selber eine Zeile einfüge, nämlich mit meiner Zeilenseparatortaste namens ENTER, dann gibt die Methode 'contains(System.lineSeparator())' 
	
	
	
	





```
false
```
 zurück. Ist die ENTER-Taste der Übeltäter oder wie habe ich das zu verstehen?


----------



## Gast2 (17. Jul 2012)

Du kannst dir doch mal ausgeben lassen was in der Textarea drin steht nachdem du per Enter einen Zeilenumbruch eingefügt hast. Am besten direkt als byte[] Array.


----------



## xehpuk (17. Jul 2012)

Mujahiddin hat gesagt.:


> Hab im Internet nach bisschen recherchieren nix gefunden.





Flown hat gesagt.:


> Also wenn du richtig recherchiert hättest, dann hättest du sicher gefunden, dass das mit einem Zeilenumbruch nicht Java-spezifisch ist sonder von der OS abhängt:


Nach einer kurzen Recherche habe ich herausgefunden, dass der Zeilenumbruch "Java-spezifisch" ist.
In Textkomponenten immer schön '\n' verwenden.



> *Newlines*
> 
> There are two properties which deal with newlines. The system property,
> 
> ...


[JAPI]javax.swing.text.DefaultEditorKit[/JAPI]


----------



## Mujahiddin (18. Jul 2012)

Das klärt meine Frage!
Dankesehr, ich wusste, da ist irgendwas faul.


----------

