Pregunta

Me preguntaba acerca de esta locura en StringUtils.split(string,separator);

Quiero separar una cadena usando un separador. @@--@@ y mi código es el siguiente.

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

Encontré el resultado como tal.

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

yo suelo commons-lang-2.6.jar ¿Alguien puede explicar cómo sucedió esto?

¿Fue útil?

Solución

StringUtils utiliza cualquiera de los personajes del separatorChars argumento como separador, no necesariamente el todo.El javadoc también estados

El separador no está incluido en la matriz String devuelta. Los separadores adyacentes son tratados como un separador.

Parámetros

  • separadorCaracteres los caracteres utilizados como delimitadores, divisiones nulas en espacios en blanco

Alternativamente, puedes usar StringUtils.splitByWholeSeparator(String, String) dividirse en el exacto @--@ o lo que sea.

Otros consejos

En este escenario, toma ambos @, como separador, por lo que es por eso que se produce esta salida. Para la salida exacta, debe probar algún otro "separador"

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top