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);
}
}
}