Pergunta

Eu estava pensando sobre essa coisa louca na StringUtils.split(string,separator);

Eu quero separar uma string usando um separador @@--@@ e meu código é assim.

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

Eu encontrei a saída, como tal,

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

Eu uso commons-lang-2.6.jar Alguém pode explicar que, como essa coisa tinha de acontecer.

Foi útil?

Solução

StringUtils usa qualquer um dos caracteres no separatorChars argumento como o separador, não necessariamente a coisa toda.O javadoc também os estados

O separador não está incluído na matriz de Seqüência de caracteres retornada. Adjacentes os separadores são tratados como um separador.

Parâmetros

  • separatorChars os caracteres usados como delimitadores, null divisões no espaço em branco

Como alternativa, você pode usar StringUtils.splitByWholeSeparator(String, String) a divisão exata @--@ ou seja o que for.

Outras dicas

Neste cenário é preciso @,- como separador então é por isso que esta saída é produzida.Para a saída exata, você tem que tentar algumas outras "separator"

Para Referir : 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top