Split-String mit angegebenem Trennzeichen, ohne leere Elemente zu entfernen

7

Im Moment benutze ich

%Vor%

trennt die Eingabezeichenfolge mit dem angegebenen Trennzeichen ( , ).

Beispiel Eingabedaten:

%Vor%

Ausgabe

%Vor%

Aber mit folgender Eingabe:

%Vor%

Es gibt nur

zurück %Vor%

Was ich brauche, ist nur ein leeres String-Objekt:

%Vor%

Wie kann ich das erreichen?

    
hsz 01.06.2011, 11:56
quelle

5 Antworten

8

Sie können einfach die String.split (..) Methode, keine Notwendigkeit für StringUtils:

%Vor%     
Waldheinz 01.06.2011, 12:01
quelle
11

Wenn Sie StringUtils verwenden möchten, rufen Sie stattdessen die Methode splitByWholeSeparatorPreserveAllTokens() anstelle von split() auf.

    
jzd 01.06.2011 12:02
quelle
4

Sie könnten diesen überladenen split () verwenden

%Vor%

Der Parameter limit steuert, wie oft das Muster angewendet wird und beeinflusst daher die Länge des resultierenden Arrays. Wenn das Limit n größer als Null ist, wird das Muster höchstens n - 1 Mal angewendet, die Länge des Arrays ist nicht größer als n und der letzte Eintrag des Arrays enthält alle Eingaben nach dem letzten übereinstimmenden Trennzeichen

Weitere Informationen finden Sie unter spalten

    
Algorithmist 01.06.2011 12:01
quelle
3

Der gewöhnliche String.split macht das, wonach du suchst.

"a,,h".split(",") ergibt { "a", "", "h" } .

ideone.com Demonstration .

    
aioobe 01.06.2011 12:01
quelle
1

Teilen Sie die Zeichenfolge mit dem angegebenen Trennzeichen, ohne leere Elemente zu entfernen.

Verwenden Sie die Methode org.apache.commons.lang.StringUtils.splitByWholeSeparatorPreserveAllTokens()

Vorteil gegenüber anderen Methoden verschiedener Klassen:

  • Es überspringt keine Unterzeichenfolge oder leere Zeichenfolge und funktioniert für alle Zeichen oder Zeichenfolge als Trennzeichen.
  • Es hat auch eine polymorphe Form, in der wir die maximale Anzahl von Token angeben können, die von einer gegebenen Zeichenfolge erwartet werden.

String.Split() methode take's regex als Parameter, also würde es für einige Zeichen als Trennzeichen funktionieren, aber nicht für alle zB: pipe (|), etc. Wir müssen ein Escape-Zeichen an die Pipe (|) anhängen, damit es gut funktioniert.

Tokenizer (String oder Stream) - Überspringt den leeren String zwischen delimiter's .

    
Setu Poddar 31.10.2013 09:14
quelle

Tags und Links