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 \\s
es 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);
}
}
}