Question

Je me demandais à propos de ce truc fou StringUtils.split(string,separator);

Je veux séparer une chaîne à l'aide d'un séparateur @@--@@ et mon code ressemble à ceci.

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

J'ai trouvé la sortie en tant que telle

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

j'utilise commons-lang-2.6.jar Quelqu'un peut-il expliquer comment cette chose s'est produite?

Était-ce utile?

La solution

StringUtils utilise l'un des caractères du separatorChars l’argument comme séparateur, pas nécessairement le tout.Le javadoc déclare également

Le séparateur n'est pas inclus dans le tableau String renvoyé. Les séparateurs adjacents sont traités comme un seul séparateur.

Paramètres

  • séparateurChars les caractères utilisés comme délimiteurs, les divisions nulles sur les espaces

Alternativement, vous pouvez utiliser StringUtils.splitByWholeSeparator(String, String) diviser sur l'exact @--@ ou quoi que ce soit.

Autres conseils

Dans ce scénario, il faut les deux @,- comme séparateur, c'est pourquoi cette sortie est produite.Pour un résultat exact, vous devez essayer un autre "séparateur"

Se référer : 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top