Frage

Ich wunderte mich über diese verrückte Sache in StringUtils.split(string,separator);

Ich möchte eine Zeichenfolge mit einem Trennzeichen trennen @@--@@ und mein Code geht so.

String[] strings = StringUtils.split("kayf86@--@9@--@5r43987@!@!%%^&^$%@!@!%-@@*&%$*(&^$%@!@!%--@", "@--@");
for (String string : strings) {
    System.out.println(string);
}

Ich habe die Ausgabe als solche gefunden

kayf86
9
5r43987
!
!%%^&^$%
!
!%
*&%$*(&^$%
!
!%

Ich benutze commons-lang-2.6.jar Kann jemand erklären, wie das passiert ist.

War es hilfreich?

Lösung

StringUtils verwendet eines der Zeichen in der separatorChars argument als Trennzeichen, nicht unbedingt das Ganze.Der javadoc auch Staaten

Das Trennzeichen ist nicht im zurückgegebenen String-Array enthalten. Angrenzend Trennzeichen werden als ein Trennzeichen behandelt.

Rahmenbedingungen

  • Trennzeichen die Zeichen, die als Trennzeichen verwendet werden, Null wird auf Leerzeichen aufgeteilt

Alternativ können Sie verwenden StringUtils.splitByWholeSeparator(String, String) auf die genaue Aufteilung @--@ oder was auch immer es ist.

Andere Tipps

In diesem Szenario werden beide @, - als Trennzeichen verwendet, daher wird diese Ausgabe erzeugt.Für eine genaue Ausgabe müssen Sie ein anderes "Trennzeichen" ausprobieren

beziehen : http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html#split%28java.lang.String,%20java.lang.String%29

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top