Java: Einen String aufteilen
Wenn Sie einen Java String aufteilen möchten, bietet sich die split-Funktion an. Wir zeigen Ihnen in unserer Anleitung, wie es geht.
Beim Programmieren kommt es hĂ€ufig vor, dass Daten von einer Form in eine andere gebracht werden mĂŒssen. Ein Beispiel hierfĂŒr ist das Zerlegen von Strings in einzelne Teilmengen. Die Java Standardbibliothek liefert Ihnen hierfĂŒr eine eigene Funktion, die wir Ihnen hier nĂ€herbringen wollen.
[3]Die split-Funktion
Die String-Klasse bietet Ihnen eine Funktion, um eine Zeichenkette in Teilmengen aufzuteilen. Die Signatur der Funktion sieht folgendermaĂen aus:
public String[] split(String regex)
Die Funktion erwartet also einen String als Eingabeparameter und gibt ein String-Array zurĂŒck. Beim Eingabeparameter handelt es sich um einen regulĂ€ren Ausdruck, der spezifiziert, an welchen Stellen der String aufgeteilt werden soll. Zur ErklĂ€rung soll folgendes Beispiel beitragen:String numbers = "31-x-8-x-6-x-12-x-19-x-42";String[] split = numbers.split("-x-"); // [31, 8, 6, 12, 19, 42]System.out.println(split[0]); // Gibt "31" ausSystem.out.println(split[1]); // Gibt "8" aus
Der String numbers enthĂ€lt verschiedene Zahlen, welche durch ein Minus getrennt werden. Die Memberfunktion split nimmt dieses Zeichen als Argument entgegen und gibt die einzelnen Substrings genau zwischen diesen Zeichen in einem Array zurĂŒck. Wichtig ist hierbei, dass der im Argument ĂŒbergebene String ein regulĂ€rer Ausdruck ist. Das bedeutet, wenn ein Regex-Metacharacter gefunden werden soll, muss diesem ein doppeltes Backslash (\\) vorangestellt werden:String numbers = "31[-]8[-]6[-]12[-]19[-]42";String[] split = numbers.split("\\[-\\]"); // [31, 8, 6, 12, 19, 42]
Regex-Metacharacters sind ( ) Â { { \ ^ $ | ? * + . < > - = !
[4]RegulĂ€re AusdrĂŒcke
Bei komplizierteren Strings bietet es sich an, regulĂ€re AusdrĂŒcke in der split-Funktion zu verwenden. Selbst wenn ein String verschiedene Arten von Zeichenketten zwischen den gesuchten Substrings hat, können Sie so immer noch ohne Probleme die Substrings identifizieren. String numbers = "31-=dq-8-ab-6-rt-12-xz-19-??-42";String[] split = numbers.split("-[^0-9]*-"); // [31, 8, 6, 12, 19, 42]
Der regulĂ€re Ausdruck "-[^0-9]*-" findet alle Zeichenketten, die keine Zahlen sind, und von zwei Minus-Zeichen eingeschlossen sind. Das sind genau die Zeichenketten, an denen der String numbers getrennt werden soll. RegulĂ€re AusdrĂŒcke können Ihnen als Programmierer oft das Leben erleichtern, allerdings sind sie auch nicht immer leicht zusammenzusetzen. Wenn Sie mehr ĂŒber regulĂ€re AusdrĂŒcke erfahren möchten, verweisen wir auf die offizielle EinfĂŒhrung zu regulĂ€ren AusdrĂŒcken in Java [5]. Ebenfalls können Sie in der Java-Insel im entsprechenden Kapitel [6] nachschlagen.
(jher)
URL dieses Artikels:
https://www.heise.de/-4060739
Links in diesem Artikel:
- #Die split-Funktion
- #RegulĂ€re AusdrĂŒcke
- https://docs.oracle.com/javase/tutorial/essential/regex/
- http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_04_007.htm#mj26fc5cf60311afbddd72295cdd646a48
- https://www.heise.de/tipps-tricks/Java-String-zu-Integer-umwandeln-3924198.html
- https://www.heise.de/tipps-tricks/Java-in-Ubuntu-installieren-so-geht-s-4401239.html
- https://www.heise.de/tipps-tricks/Java-enums-so-geht-s-4055338.html
Copyright © 2020 Heise Medien