Respostas:
Algo nas linhas de
myString.split("\\s+");
Isso agrupa todos os espaços em branco como um delimitador.
Então, se eu tiver a string:
"Hello[space][tab]World"
Isso deve produzir as cordas "Hello"e "World"omitir o espaço vazio entre o [space]e o[tab] .
Como VonC apontou, a barra invertida deve ser escapado, porque Java em primeiro lugar tentar escapar da cadeia para um caractere especial, e enviá que para ser analisado. O que você quer é o literal "\s", o que significa que você precisa passar "\\s". Pode ficar um pouco confuso.
O \\sé equivalente a [ \\t\\n\\x0B\\f\\r].
trim()primeiro: trim().split("\\s++")- caso contrário, por exemplo, a divisão do `abc` emitirá duas seqüências vazias primeiro.
"\\\\s"?
Na maioria dos dialetos regex, há um conjunto de resumos de caracteres convenientes que você pode usar para esse tipo de coisa - estes são bons para lembrar:
\w - Corresponde a qualquer caractere de palavra.
\W - Corresponde a qualquer caractere não-palavra.
\s - Corresponde a qualquer caractere de espaço em branco.
\S - Corresponde a qualquer coisa, exceto caracteres em espaço em branco.
\d - Corresponde a qualquer dígito.
\D - Corresponde a qualquer coisa, exceto dígitos.
Uma pesquisa por "Regex Cheatsheets" deve recompensá-lo com vários resumos úteis.
Para que isso funcione em Javascript , tive que fazer o seguinte:
myString.split(/\s+/g)
"\\ s +" deve fazer o truque
Além disso, você pode ter um espaço sem quebra UniCode xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
O Apache Commons Lang possui um método para dividir uma string com caracteres de espaço em branco como delimitadores:
StringUtils.split("abc def")
Isso pode ser mais fácil de usar do que um padrão regex.
você pode dividir uma string por quebra de linha usando a seguinte instrução:
String textStr[] = yourString.split("\\r?\\n");
você pode dividir uma string pelo espaço em branco usando a seguinte instrução:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Estude este código .. boa sorte
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);
}
}
}