Java split() effizient einsetzen: So teilst du Strings richtig
Die Java-Methode String split() hilft dir dabei, Strings in mehrere Teilstrings zu zerlegen. Dabei legst du einen Parameter fest, der als Trennzeichen dient. Ein optionaler Parameter steuert die Anzahl der resultierenden Teilstrings. Beim Einsatz der Methode gibt es ein paar Details zu beachten, damit alles glatt läuft.
Was ist die Methode Java String split()?
Ein Java String verknüpft verschiedene Zeichen, Ziffern oder Sonderzeichen. Er ist ein Objekt der Klasse java.lang und wird mit der Klasse String erstellt. Die Programmiersprache ermöglicht es dir, diese Strings in mehrere Teilstrings aufzuteilen. Die Methode Java String split() ist ideal, wenn du bestimmte Bereiche extrahieren oder den String in seine Einzelteile zerlegen willst. Wir zeigen dir die verschiedenen Möglichkeiten dieser Methode.
Nutzt du Java String split(), erhältst du ein Array aus mehreren Strings als Rückgabewert.
Syntax und Funktionsweise der Methode
Die Syntax der Java-Methode String split() ist simpel, lässt sich aber um einen optionalen Parameter ergänzen. Hier ist die Basisvariante:
String[] split(String regex)javaDas zeigt, dass die Rückgabe als Array erfolgt. String ist das String-Objekt, regex der Eingabeparameter, der die Trennstellen definiert. Die Nutzung dieses Parameters wird empfohlen. Mit dem optionalen Parameter limit sieht die Syntax so aus:
String[] split(String regex, int limit)javalimit definiert als Integer, wie viele Teilstrings erstellt werden. Ist der Wert negativ oder 0, werden alle Teilstrings ausgegeben. Bei einem positiven Wert wird die Ausgabe auf die entsprechende Anzahl begrenzt.
Beispiel: Leerzeichen als Trennzeichen
Am besten verstehst du Java String split() anhand eines Praxisbeispiels. Wir erstellen einen String aus vier Wörtern: „Dies ist ein Beispiel“. Diesen zerteilen wir nun. Sinnvoll ist eine Trennung an den Leerzeichen zwischen den Wörtern. Mit diesem Code klappt es:
public class Main {
public static void main(String[] args) {
String x = "Dies ist ein Beispiel";
String[] ausgabe = x.split(" ");
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaHier wird die String-Variable x initiiert und die split()-Methode darauf angewendet. Der Parameter regex sucht nach Leerzeichen und teilt den String dort auf. Das Ergebnis landet im Array „ausgabe“. Mit der for-Schleife und dem Java-Befehl System.out.println erhältst du diese Ausgabe:
Dies
ist
ein
BeispieljavaKomma als Trennzeichen: Mit und ohne Leerzeichen
Du kannst die Methode auch nutzen, um Listen zu unterteilen, die als String mit Kommata gespeichert sind. Dabei hilft ein kleiner Trick für ein sauberes Ergebnis. Nehmen wir Wochentage, die durch Kommata getrennt sind. Setzen wir den regex dort an, sieht der Code so aus:
public class Main {
public static void main(String[] args) {
String x = "Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag";
String[] ausgabe = x.split(",");
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaDie Ausgabe ist hier noch nicht optimal:
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
SonntagjavaAb „Dienstag“ haben alle Werte ein führendes Leerzeichen, da nach dem Komma getrennt wurde. Um das zu vermeiden, nutzt du einfach ein zusätzliches Leerzeichen im Trennzeichen:
public class Main {
public static void main(String[] args) {
String x = "Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag";
String[] ausgabe = x.split(", ");
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaJetzt sieht das Ergebnis ordentlich aus:
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
SonntagjavaZiffernketten trennen
Auch lange Ziffernketten lassen sich so zerlegen. Stell dir einen Code vor, der durch Punkte und einen Doppelpunkt unterteilt ist. Um die Zahlen nach dem Doppelpunkt zu erhalten, nutzt du diesen Code:
public class Main {
public static void main(String[] args) {
String x = "194.518.552.1.17:6339";
String[] ausgabe = x.split(":");
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaDie Ausgabe sieht dann so aus:
194.518.552.1.17
6339javaDie Methode String split() mit dem Parameter limit
Wie erwähnt, gibt es den optionalen Parameter limit. Er begrenzt die Anzahl der Teilstrings. Dabei gibt es drei Szenarien: Werte kleiner als 0, gleich 0 oder größer als 0.
limit kleiner als 0
Ist das limit kleiner als 0, wird die Regel ohne Einschränkung auf den gesamten String angewandt. Das Array kann also beliebig lang werden:
public class Main {
public static void main(String[] args) {
String x = "Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag ";
String[] ausgabe = x.split(", ", -3);
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaDa nach „Sonntag“ noch ein Leerzeichen steht, endet das Array mit einem leeren String:
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntagjavalimit 0
Bei einem Wert von 0 wird die Regel ebenfalls maximal oft angewandt. Der Unterschied: Ein eventueller leerer String am Ende wird im finalen Array nicht berücksichtigt.
public class Main {
public static void main(String[] args) {
String x = "Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag ";
String[] ausgabe = x.split(", ", 0);
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaDie Ausgabe wirkt gleich, aber der letzte String wird verworfen:
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntagjavalimit größer als 0
Hier siehst du den Unterschied sofort: Das limit legt fest, wie viele Teilstrings maximal ausgegeben werden sollen.
public class Main {
public static void main(String[] args) {
String x = "Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag ";
String[] ausgabe = x.split(", ", 3);
for (String y : ausgabe) {
System.out.println(y);
}
}
}javaDie Ausgabe unterscheidet sich deutlich von den vorherigen Beispielen:
Montag
Dienstag
Mittwoch, Donnerstag, Freitag, Samstag, Sonntagjava