Respuestas:
Algo en la linea de
myString.split("\\s+");
Esto agrupa todos los espacios en blanco como delimitador.
Entonces, si tengo la cadena:
"Hello[space][tab]World"
Esto debería producir las cadenas "Hello"y "World"omitir el espacio vacío entre el [space]y el [tab].
Como señaló VonC, la barra diagonal inversa debe escaparse, porque Java primero intentaría escapar de la cadena a un carácter especial y enviarlo para que se analice. Lo que quieres es el literal "\s", lo que significa que debes pasar "\\s". Puede ser un poco confuso.
El \\ses equivalente a [ \\t\\n\\x0B\\f\\r].
trim()primero debe: trim().split("\\s++")- de lo contrario, por ejemplo, dividir `abc` emitirá dos cadenas vacías primero.
"\\\\s"?
En la mayoría de los dialectos de expresiones regulares hay un conjunto de resúmenes de caracteres convenientes que puede usar para este tipo de cosas; estos son buenos para recordar:
\w - Coincide con cualquier carácter de palabra.
\W - Coincide con cualquier carácter no verbal.
\s - Coincide con cualquier personaje de espacio en blanco.
\S - Coincide con cualquier cosa menos caracteres de espacio en blanco.
\d - Coincide con cualquier dígito.
\D - Coincide con cualquier cosa excepto dígitos.
La búsqueda de "Chegeheets Regex" debería recompensarlo con muchos resúmenes útiles.
Para que esto funcione en Javascript , tuve que hacer lo siguiente:
myString.split(/\s+/g)
"\\ s +" debería hacer el truco
También es posible que tenga un espacio UniCode sin interrupción xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang tiene un método para dividir una cadena con caracteres de espacio en blanco como delimitadores:
StringUtils.split("abc def")
Esto podría ser más fácil de usar que un patrón regex.
puede dividir una cadena por salto de línea utilizando la siguiente instrucción:
String textStr[] = yourString.split("\\r?\\n");
puede dividir una cadena por espacios en blanco utilizando la siguiente instrucción:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Estudia este código .. buena suerte
import java.util.*;
class Demo{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("Input String : ");
String s1 = input.nextLine();
String[] tokens = s1.split("[\\s\\xA0]+");
System.out.println(tokens.length);
for(String s : tokens){
System.out.println(s);
}
}
}