Java - String.split("+") funktioniert nicht?

... komplette Frage anzeigen

4 Antworten

Die split()-Methode der String Klasse erwartet KEINEN Trennstring, sondern einen regulären Ausdruck!

Da das Pluszeichen ein Bestandteil der Regex-Syntax ist, kannst du es nicht als Trenner benutzen.

Stelle dem Trennzeichen einfach zwei Backslash voran, falls etwas nicht zu funktionieren scheint:

str.split("\\\\."); // Punkt als Trenner

Lies dir dazu bitte die API-Docs durch:

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

Das ist übrigens extrem ineffizient, da bei jedem split()-Aufruf intern ein neues Pattern-Objekt erzeugt und damit ein regulärer Ausdruck geparst und "kompiliert" werden muss.

Naja, viel Spaß! :)

Antwort bewerten Vielen Dank für Deine Bewertung

Habe gerade keine IDE, aber versuchs mal zu escapen mit 

String.split("\\+")

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DexterNemrod
07.10.2016, 23:03

Da für einen Java String ein \ auch ein sonderzeichen ist, muss der Backslash escaped werden mit einem weiterne backslash:

String.split("\\+")

damit kommt bei der Funktion effektiv \+ an.

1
Kommentar von Ner0Her0
07.10.2016, 23:06

"\+" ist geht nicht, mir wurden aber sofort  "\\+" vorgeschlagen, was auch funktioniert! DANKE!

0

vlt so... String term = "7+8+9"; for(int j=term.indexOf('+');j>0;j=term.indexOf('+')) { System.out.println(term.substring(0, j)); term=term.substring(j+1, term.length()); } System.out.println(term);

Antwort bewerten Vielen Dank für Deine Bewertung