Domanda

Mi stavo chiedendo di questa cosa pazza in StringUtils.split(string,separator);

Voglio separare una stringa usando un separatore @@--@@ e il mio codice è così.

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

Ho trovato l'uscita come tale

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

Io uso commons-lang-2.6.jar può qualcuno spiegare che questa cosa fosse accaduta.

È stato utile?

Soluzione

StringUtils utilizza uno qualsiasi dei caratteri nell'argomento separatorChars come separatore, non necessariamente il tutto. javadoc anche afferma

.

Il separatore non è incluso nell'array stringa restituito. adiacente I separatori sono trattati come un separatore.

Parametri

    .
  • separatorchars I personaggi usati come delimitatori, null split su spazi bianchi

In alternativa, è possibile utilizzare StringUtils.splitByWholeSeparator(String, String) a dividere sull'esatico @--@ o qualunque cosa sia.

Altri suggerimenti

In questo scenario ci vogliono entrambi @, - come separatore, quindi è il motivo per cui questa uscita è prodotta. Per l'uscita esatta devi provare un altro altro "separatore"

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top