Ich habe den String-Wert von "Hello,World\,,1,2,3"
und ich brauche es, um mit dem Trennzeichen von geteilt zu werden ,
. Die Methode muss jedoch auch die Escpace-Zeichen zum Zeitpunkt der Aufteilung erkennen und schließlich muss die Ausgabe ein Array sein wie:
[Hello, World,, 1, 2, 3]
Ich habe eine Methode, um es zu tun, aber es erkennt die Escape-Zeichen nicht.
public static String[] tokenize1(String record, char delimiter) {
String delim = String.valueOf(delimiter);
String[] arr = record.split(delim);
return arr;
}
Antworten:
2 für die Antwort № 1Sie können versuchen, das Komma zu teilen, jedoch mit einem negativen Lookbehind, der besagt, dass das Komma nicht durch einen Backslash maskiert wurde:
String input = "Hello,World\,,1,2,3";
String[] parts = input.split("(?<!\\),");
for (String part : parts) {
// uncomment to also remove backslash
// part = part.replaceAll("\\,", ",");
System.out.println(part);
}
Ausgabe:
Hello
World,
1
2
3