Wie kann ich einen Satz zerlegen?
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]
Ab der Version 21 bietet Java in den Klassen java.lang.String
und java.util.regex.Pattern
noch eine
Methode splitWithDelimiters(CharSequence input, int limit)
,
die neben den Teilstrings zusätzlich die Trenner in
einem String-Array zurückgibt:
String s = "Just think about these things in your mind" + "- then bring them into your world. Fluff that up." + " Just make a decision and let it go. Let your imagination" + " just wonder around when you're doing these things." + " All kinds of happy little splashes." + " Everyone is going to see things differently " + "- and that's the way it should be."; String[] strs = s.splitWithDelimiters("y.", 0); for (String str : strs) { System.out.println(str); }
Die Ausgabe sieht wie folgt aus, wobei die o.a. Funktion des zweiten Parameters auch hier gilt.
Just think about these things in yo ur mind- then bring them into yo ur world. Fluff that up. Just make a decision and let it go. Let yo ur imagination just wonder around when yo u're doing these things. All kinds of happ y little splashes. Ever yo ne is going to see things differentl y - and that's the wa y it should be.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.