Risposte:
Qualcosa nelle righe di
myString.split("\\s+");
Questo raggruppa tutti gli spazi bianchi come delimitatore.
Quindi se ho la stringa:
"Hello[space][tab]World"
Questo dovrebbe produrre le stringhe "Hello"
ed "World"
omettere lo spazio vuoto tra il [space]
e il [tab]
.
Come VonC ha sottolineato, il backslash deve essere sfuggito, perché Java dovrebbe prima cercare di sfuggire la stringa in un carattere speciale, e inviare che per essere analizzato. Quello che vuoi è letterale "\s"
, il che significa che devi passare "\\s"
. Può diventare un po 'confuso.
Il \\s
equivale a [ \\t\\n\\x0B\\f\\r]
.
trim()
prima: trim().split("\\s++")
- altrimenti, ad es. La divisione di `abc` emetterà prima due stringhe vuote.
"\\\\s"
?
Nella maggior parte dei dialetti regex ci sono una serie di comodi riassunti di caratteri che puoi usare per questo tipo di cose - questi sono buoni da ricordare:
\w
- Corrisponde a qualsiasi carattere di parola.
\W
- Corrisponde a qualsiasi carattere non parola.
\s
- Corrisponde a qualsiasi carattere di spazio bianco.
\S
- Corrisponde a tutto tranne che ai caratteri degli spazi bianchi.
\d
- Abbina qualsiasi cifra.
\D
- Trova tutto tranne le cifre.
Una ricerca di "Schede tecniche di Regex" dovrebbe premiarti con molti sommari utili.
Per farlo funzionare in Javascript , ho dovuto fare quanto segue:
myString.split(/\s+/g)
"\\ s +" dovrebbe fare il trucco
Inoltre potresti avere uno spazio non-break UniCode xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang ha un metodo per dividere una stringa con caratteri di spazi bianchi come delimitatori:
StringUtils.split("abc def")
Questo potrebbe essere più facile da usare rispetto a un modello regex.
puoi dividere una stringa per interruzione di riga usando la seguente istruzione:
String textStr[] = yourString.split("\\r?\\n");
puoi dividere una stringa per Whitespace usando la seguente istruzione:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Studia questo codice .. buona fortuna
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);
}
}
}