Wie kann ich einen Satz zerlegen?

Ein String kann mit Hilfe der Methode split() in einzelne Teile zerlegt werden.

public class SatzZerlegenClass { 
    public static void main(String[] args){
        // String als Trennzeichen
        String[] string_result = "Dies ist ein Test".split("e");
        for (int x=0; x<string_result.length; x++){
            System.out.println(string_result[x]);
        }
        
        // regex als Trennzeichen
        String[] regex_result = "Dies ist ein Test".split("\\s");
        for (int x=0; x<regex_result.length; x++){
            System.out.println(regex_result[x]);
        }
    }
}

Die Methode split() erlaubt es, einen String an einer bestimmten Stelle zu zerlegen und die Teile als Array zu speichern. Das Trennzeichen muss als regulärer Ausdruck als Parameter übergeben werden.

Die Methode ist überladen und kann neben dem ersten Parameter noch einen zweiten numerischen int-Wert übergeben bekommen. Mit diesem kann die Ausgabe insofern begrenzt werden, als er die Häufigkeit angibt, in der der reguläre Ausdruck angewendet wird. Dadurch wird indirekt natürlich auch die Länge des resultierenden Arrays begrenzt.
Ist dieser Wert größer als 0, so wird er n-1 mal angewendet und das zurück gegebene Array ist nicht gößer als n.
Bei negativen Werten für n wird der reguläre Ausdruck beliebig oft angewendet und das Array kann eine beliebige Größe erreichen. Ist n gleich 0, so wird der Ausdruck ebenfalls beliebig oft angewendet, gleichzeitig werden jedoch auch Leerstring-Einträge am Ende des Ergebnis-Arrays entfernt.

import java.util.Arrays;

public class SatzZerlegen2Class { 
    public static void main(String[] args){
        String s = "Dies ist ein Tee-Test und das ist Tee";
        
        String[] stringResult = s.split("e", 3);
        System.out.println(Arrays.toString(stringResult));
        stringResult = s.split("e", 10);
        System.out.println(Arrays.toString(stringResult));
        stringResult = s.split("e", -3);
        System.out.println(Arrays.toString(stringResult));
        stringResult = s.split("e", -10);
        System.out.println(Arrays.toString(stringResult));
        stringResult = s.split("e", 0);
        System.out.println(Arrays.toString(stringResult));
    }
}

Das Ergebnis zeigt, dass die letzten beiden Leerstrings am Ende des Arrays entfernt werden, wenn als zweiter Parameter 0 eingetragen wird:

[Di, s ist , in Tee-Test und das ist Tee]
[Di, s ist , in T, , -T, st und das ist T, , ]
[Di, s ist , in T, , -T, st und das ist T, , ]
[Di, s ist , in T, , -T, st und das ist T, , ]
[Di, s ist , in T, , -T, st und das ist T]

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.