it-swarm.com.de

Verwenden Sie String.split () mit mehreren Trennzeichen

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("-\\.");
}
164
Thang Pham

Ich denke, Sie müssen den Regex OR - Operator einschließen:

String[]tokens = pdfName.split("-|\\.");

Was Sie haben, wird mit "-" übereinstimmen. kein "-" oder ein "."

273
Richard H

Versuchen Sie diese Regex "[-.]+". Das + after behandelt aufeinanderfolgende Trennzeichen wie einen. Entfernen Sie Plus, wenn Sie dies nicht möchten.

46
Peter Knego

Sie können den Regex "\ W" verwenden. Dies entspricht jedem Nicht-Word-Zeichen. Die erforderliche Zeile wäre:

String[] tokens=pdfName.split("\\W");
23
Varun Gangal

Mit Guava können Sie folgendes tun:

Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
12
ColinD

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 [].)

10
T.J. Crowder

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

3
Edd

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"}

3
ÖMER TAŞCI

Versuchen Sie diesen Code:

var string = 'AA.BB-CC-DD.Zip';
array = string.split(/[,.]/);
0
Newbie

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("-|\\.");
}
0
Avdhesh Yadav

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.

0
Pritam Banerjee
String[] token=s.split("[.-]");
0
Nitish
s.trim().split("[\\W]+") 

sollte arbeiten.

0
sss