11 Stimme

Java: Split mit Punkt str.split(".") funktioniert nicht

Frage von Gast | 24.09.2013 um 16:57

Ich habe ein komisches Problem in einem Java-Programm von mir, das mir nun schon Stunden an Zeit gekostet hat. Ich versuche einen String an einem Zeichen zu trennen, also die klassische explode bzw. in Java split Funktion.

Während das hier einwandfrei funktioniert

String str = "1;2;3";
String[] sarr = str.split(";");

versagt die Funktion aus mir unerklärlichen Gründen, sobald ich als Separator einen Punkt angebe:

String str = "1.2.3";
String[] sarr = str.split(".");

Was kann ich tun? Leider muss ich an einem Punkt trennen und die Lösung die Zeichen in dem String vorher in ein anderes Zeichen das funktioniert zu ersetzen, gefällt mir ganz und gar nicht.

AntwortenPositivNegativ
4Beste Antwort6 Stimmen

Die split-Funktion in Java erwartet einen regulären Ausdruck (RegEx) als Parameter. Deswegen wird dein "." auch als regulärer Ausdruck interpretiert und in der Welt der regulären Ausdrücke ist ein Punkt ein Sonderzeichen, das für jedes beliebige andere Zeichen stehen kann. Deswegen funktioniert das Trennen in deinem Fall nicht.

Damit es funktioniert, probiere es einmal so:

String str = "1.2.3";
String[] sarr = str.split("\\.");

Durch das vorangestellte \\ wird der Punkt escaped und nicht mehr als Sonderzeichen behandelt.
24.09.2013 um 20:26

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.