Ich muss eine Zeichenfolge-Basis auf Trennzeichen -
und .
aufteilen. Nachfolgend finden Sie meine gewünschte Ausgabe.
AA.BB-CC-DD.Zip
->
AA
BB
CC
DD
Zip
aber mein folgender code funktioniert nicht.
private void getId(String pdfName){
String[]tokens = pdfName.split("-\\.");
}
Ich denke, Sie müssen den Regex OR - Operator einschließen:
String[]tokens = pdfName.split("-|\\.");
Was Sie haben, wird mit "-" übereinstimmen. kein "-" oder ein "."
Versuchen Sie diese Regex "[-.]+"
. Das + after behandelt aufeinanderfolgende Trennzeichen wie einen. Entfernen Sie Plus, wenn Sie dies nicht möchten.
Sie können den Regex "\ W" verwenden. Dies entspricht jedem Nicht-Word-Zeichen. Die erforderliche Zeile wäre:
String[] tokens=pdfName.split("\\W");
Mit Guava können Sie folgendes tun:
Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
Die Zeichenfolge, die Sie split
geben, ist die Zeichenfolgenform eines regulären Ausdrucks.
private void getId(String pdfName){
String[]tokens = pdfName.split("[\\-.]");
}
Das bedeutet, jedes Zeichen im []
aufzuspalten (wir müssen -
mit einem Backslash umgehen, da es in []
etwas Besonderes ist; und natürlich müssen wir den Backslash entziehen, da dies eine Zeichenfolge ist). (Umgekehrt ist .
normalerweise speziell, aber ist nicht special innerhalb von []
.)
Ich würde Apache Commons verwenden:
org.Apache.commons.lang3.StringUtils;
importieren
private void getId(String pdfName){
String[] tokens = StringUtils.split(pdfName, "-.");
}
Es wird für jedes der angegebenen Trennzeichen aufgeteilt, im Gegensatz zu StringUtils.splitByWholeSeparator(str, separator)
, das die komplette Zeichenfolge als Trennzeichen verwendet
Für zwei Zeichenfolgen als Trennzeichen "UND" und "ODER" sollte dies bearbeitet werden. Vergessen Sie nicht, während des Gebrauchs zu trimmen.
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
Ergebnis: Städte = {"ISTANBUL", "NEW YORK", "PARIS", "TOKYO", "MOSCOW"}
Versuchen Sie diesen Code:
var string = 'AA.BB-CC-DD.Zip';
array = string.split(/[,.]/);
Sie können auch einen regulären Ausdruck als Argument in der split () - Methode angeben. Siehe Beispiel ...
private void getId(String pdfName){
String[]tokens = pdfName.split("-|\\.");
}
Es ist besser, so etwas zu verwenden:
s.split("[\\s\\-\\.\\'\\?\\,\\_\\@]+");
Habe ein paar andere Zeichen als Beispiel hinzugefügt. Dies ist die sicherste Methode, da .
und '
behandelt werden.
String[] token=s.split("[.-]");
s.trim().split("[\\W]+")
sollte arbeiten.