Die Java-Methode String split() hilft dir dabei, Strings in mehrere Teil­strings zu zerlegen. Dabei legst du einen Parameter fest, der als Trenn­zei­chen dient. Ein op­tio­na­ler Parameter steuert die Anzahl der re­sul­tie­ren­den Teil­strings. 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 ver­schie­de­ne Zeichen, Ziffern oder Son­der­zei­chen. Er ist ein Objekt der Klasse java.lang und wird mit der Klasse String erstellt. Die Pro­gram­mier­spra­che er­mög­licht es dir, diese Strings in mehrere Teil­strings auf­zu­tei­len. Die Methode Java String split() ist ideal, wenn du bestimmte Bereiche ex­tra­hie­ren oder den String in seine Ein­zel­tei­le zerlegen willst. Wir zeigen dir die ver­schie­de­nen Mög­lich­kei­ten dieser Methode.

Nutzt du Java String split(), erhältst du ein Array aus mehreren Strings als Rück­ga­be­wert.

Syntax und Funk­ti­ons­wei­se der Methode

Die Syntax der Java-Methode String split() ist simpel, lässt sich aber um einen op­tio­na­len Parameter ergänzen. Hier ist die Ba­sis­va­ri­an­te:

String[] split(String regex)
java

Das zeigt, dass die Rückgabe als Array erfolgt. String ist das String-Objekt, regex der Ein­ga­be­pa­ra­me­ter, der die Trenn­stel­len definiert. Die Nutzung dieses Pa­ra­me­ters wird empfohlen. Mit dem op­tio­na­len Parameter limit sieht die Syntax so aus:

String[] split(String regex, int limit)
java

limit definiert als Integer, wie viele Teil­strings erstellt werden. Ist der Wert negativ oder 0, werden alle Teil­strings aus­ge­ge­ben. Bei einem positiven Wert wird die Ausgabe auf die ent­spre­chen­de Anzahl begrenzt.

Beispiel: Leer­zei­chen als Trenn­zei­chen

Am besten verstehst du Java String split() anhand eines Pra­xis­bei­spiels. Wir erstellen einen String aus vier Wörtern: „Dies ist ein Beispiel“. Diesen zerteilen wir nun. Sinnvoll ist eine Trennung an den Leer­zei­chen 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);
		}
	}
}
java

Hier wird die String-Variable x initiiert und die split()-Methode darauf an­ge­wen­det. Der Parameter regex sucht nach Leer­zei­chen 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
Beispiel
java

Komma als Trenn­zei­chen: Mit und ohne Leer­zei­chen

Du kannst die Methode auch nutzen, um Listen zu un­ter­tei­len, die als String mit Kommata ge­spei­chert sind. Dabei hilft ein kleiner Trick für ein sauberes Ergebnis. Nehmen wir Wo­chen­ta­ge, 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);
		}
	}
}
java

Die Ausgabe ist hier noch nicht optimal:

Montag
 Dienstag
 Mittwoch
 Donnerstag
 Freitag
 Samstag
 Sonntag
java

Ab „Dienstag“ haben alle Werte ein führendes Leer­zei­chen, da nach dem Komma getrennt wurde. Um das zu vermeiden, nutzt du einfach ein zu­sätz­li­ches Leer­zei­chen im Trenn­zei­chen:

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);
		}
	}
}
java

Jetzt sieht das Ergebnis or­dent­lich aus:

Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
java

Zif­fern­ket­ten trennen

Auch lange Zif­fern­ket­ten lassen sich so zerlegen. Stell dir einen Code vor, der durch Punkte und einen Dop­pel­punkt un­ter­teilt ist. Um die Zahlen nach dem Dop­pel­punkt 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);
		}
	}
}
java

Die Ausgabe sieht dann so aus:

194.518.552.1.17
6339
java

Die Methode String split() mit dem Parameter limit

Wie erwähnt, gibt es den op­tio­na­len Parameter limit. Er begrenzt die Anzahl der Teil­strings. 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 Ein­schrän­kung 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);
		}
	}
}
java

Da nach „Sonntag“ noch ein Leer­zei­chen steht, endet das Array mit einem leeren String:

Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
java

limit 0

Bei einem Wert von 0 wird die Regel ebenfalls maximal oft angewandt. Der Un­ter­schied: Ein even­tu­el­ler leerer String am Ende wird im finalen Array nicht be­rück­sich­tigt.

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);
		}
	}
}
java

Die Ausgabe wirkt gleich, aber der letzte String wird verworfen:

Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
java

limit größer als 0

Hier siehst du den Un­ter­schied sofort: Das limit legt fest, wie viele Teil­strings maximal aus­ge­ge­ben 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);
		}
	}
}
java

Die Ausgabe un­ter­schei­det sich deutlich von den vor­he­ri­gen Bei­spie­len:

Montag
Dienstag
Mittwoch, Donnerstag, Freitag, Samstag, Sonntag
java
Zum Hauptmenü