Die Substring-Methode in Java nutzt du, um einen Teil­string aus einem kom­plet­ten String zu ex­tra­hie­ren. Dafür gibt es zwei Varianten: Entweder teilst du den String von einem be­stimm­ten Index bis zum Schluss oder du legst Start- und Endpunkt des Teil­strings vorab fest.

Was ist die Substring-Methode in Java und wie wird sie ein­ge­setzt?

In Java lassen sich Buch­sta­ben, Ziffern oder Son­der­zei­chen zu einem Java String ver­knüp­fen. Wenn du nun spe­zi­fi­sche Bereiche aus diesem String her­aus­tren­nen möchtest, stehen dir ver­schie­de­ne Wege offen. Während du mit der Methode Java String.split() den gesamten String zerlegst, um etwa die Übersicht zu erhöhen, geht die Methode Java String substring() einen Schritt weiter: Sie gibt exakt den Teil zurück, den du mittels Start-Index oder einer Kom­bi­na­ti­on aus Start- und End-Index de­fi­nierst. Wir zeigen dir die Methode und ihre An­wen­dungs­mög­lich­kei­ten im Detail.

Substring mit be­gin­In­dex

Wie erwähnt, gibt es für die Java-Methode String substring() zwei Varianten. Die erste Variante definiert lediglich einen Start­punkt für den Teil­string. Ab diesem Punkt wird der String bis zum letzten Zeichen getrennt. Die Syntax sieht so aus:

String substring(int beginIndex)
java

Dabei bestimmst du zuerst den String, aus dem du ex­tra­hie­ren möchtest. Mit einem Integer legst du fest, an welcher Position der Teil­string beginnt. Die Ausgabe erfolgt über den Java-Befehl System.out.println. Die Methode arbeitet inklusiv, das heißt, das Zeichen an der Index-Position gehört bereits zum neuen Teil­string. Ist der Wert be­gin­In­dex kleiner als 0 oder länger als der ei­gent­li­che String, wird eine Feh­ler­mel­dung aus­ge­ge­ben.

Um die Logik dieser Substring-Methode in Java zu ver­deut­li­chen, nutzen wir ein einfaches Beispiel, legen einen String an und ex­tra­hie­ren daraus einen Teil­be­reich.

public class Main {
	public static void main(String args[]) {
	String Str = new String("Dies ist ein Beispiel. Hier folgt ein zweiter Satz.");
	System.out.print("Dies ist der neue Teilstring: ");
	System.out.println(Str.substring(23));
	}
}
java

Führst du den Code aus, erhältst du folgendes Ergebnis:

Dies ist der neue Teilstring: Hier folgt ein zweiter Satz.
java

Das funk­tio­niert natürlich genauso gut mit Zif­fern­fol­gen:

public class Main {
	public static void main(String args[]) {
	String Str = new String("192.448.782.1142");
	System.out.print("Die letzten vier Ziffern lauten: ");
	System.out.println(Str.substring(12));
	}
}
java

Deine Ausgabe lautet:

Die letzten vier Ziffern lauten: 1142
java

Substring mit be­gin­In­dex und endIndex

Mit der zweiten Variante der Substring-Methode in Java ge­stal­test du den Teil­string noch präziser. Hier legst du nicht nur den Start­punkt fest, sondern de­fi­nierst zu­sätz­lich einen Endpunkt. Die Syntax hierfür ist:

String substring(int beginIndex, int endIndex)
java

Dabei ist der be­gin­In­dex inklusiv, während der endIndex exklusiv gewertet wird. Auch das lässt sich einfach ver­an­schau­li­chen:

public class Main {
	public static void main(String args[]) {
	String Str = new String("Dies ist ein Beispiel. Hier folgt ein zweiter Satz.");
	System.out.print("Dies ist der neue Teilstring: ");
	System.out.println(Str.substring(9, 21));
	}
}
java

Das Ergebnis sieht so aus:

Dies ist der neue Teilstring: ein Beispiel
java

Du kannst auch pro­blem­los Teile innerhalb eines Wortes isolieren. Hier ein Beispiel anhand einer fiktiven Liste:

public class Main {
	public static void main(String args[]) {
	String Str = new String("Eier, Milch, Bohnen, Speck und Mehl");
	System.out.print("Dies ist der neue Teilstring: ");
	System.out.println(Str.substring(14, 18));
	}
}
java

Die neue Ausgabe zeigt folgendes:

Dies ist der neue Teilstring: ohne
java

Zum Abschluss zeigen wir dir einen prak­ti­schen An­wen­dungs­fall für die Java-Substring-Methode. Stell dir vor, du erhältst Kon­takt­da­ten von Kund:innen in einem fixen Format und möchtest nur den re­le­van­ten Teil isolieren. Dafür eignet sich die Methode perfekt. Hier ist der passende Code:

public class Main {
	public static void main(String args[]) {
	String Str = new String("247: Schmidt, Peter|schmidtp@beispiel.com|Berlin|12.04.1972");
	System.out.print("Dies ist die E-Mail-Adresse des Kunden: ");
	System.out.println(Str.substring(20, 41));
	}
}
java

Deine Ausgabe sieht dann so aus:

Dies ist die E-Mail-Adresse des Kunden: schmidtp@beispiel.com
java
Zum Hauptmenü