2011-05-22 11 views
17

Estoy tratando de encontrar una manera de dividir una cadena en un arreglo de cuerdas (s), y tengo que dividirlo siempre que se encuentre una especia blanco, ejemplode Split cadena en una matriz de cadena

"Hola soy Paul"

en"

"Hola" "soy" "Paul"

¿Cómo se representan los espacios en blanco en el método split() usando RegularExpression?

+9

¿por qué necesita una expresión regular para eso? ¿no podría simplemente hacer 'String [] myList = myString.split (" ");' –

+1

Hay una herramienta llamada Visual REGEXP (http://laurent.riesterer.free.fr/regexp/) que puede ayudarlo a visualizar el resultado de tu regexp (perl regexp es decir, pero más o menos todo el idioma está usando perl regexp para que no sea un problema) – Johan

+1

"aún no sé mucho sobre RegExp" - parece que tienes que remediar eso, porque preguntar alguien más para escribir tus expresiones regulares para ti no es sostenible. –

Respuesta

47

Usted necesita una expresión regular como "\\s+", lo que significa: dividida siempre que se encuentre al menos un espacio en blanco. El código completo de Java es:

try { 
    String[] splitArray = input.split("\\s+"); 
} catch (PatternSyntaxException ex) { 
    // 
} 
+0

Quizás quieras '\ w +'? – Gabe

+0

@Gabe: No lo creo. Él quiere cualquier cosa, excepto whitespeces. Por ejemplo, quiere que el apóstrofo en "yo soy" se mantenga junto con el i y el m. –

+0

Vaya, quise decir '\ s +'! (como lo tiene ahora) – Gabe

7

String[] result = "hi i'm paul".split("\\s+"); de división a través de uno o más casos.

O podría echar un vistazo a Apache Common StringUtils. Tiene el método StringUtils.split(String str) que divide la cadena usando espacios en blanco como delimitador. También tiene otros métodos de utilidad útiles

Cuestiones relacionadas