Odpowiedzi:
Coś w linii
myString.split("\\s+");
Grupuje wszystkie białe spacje jako separator.
Więc jeśli mam ciąg:
"Hello[space][tab]World"
Powinno to dać ciągi znaków "Hello"i "World"pominąć pustą przestrzeń między [space]i [tab].
Jak VonC wskazał, odwrotny ukośnik należy uciekł, ponieważ Java najpierw spróbuje uciec ciąg szczególnym charakterze, a także wysyłać które mają być przetwarzane. To, czego chcesz, to dosłowność "\s", co oznacza, że musisz zdać "\\s". Może to być trochę mylące.
Jest \\sto równoważne z [ \\t\\n\\x0B\\f\\r].
trim()najpierw: trim().split("\\s++")- w przeciwnym razie, np. Podzielenie `abc` wyemituje najpierw dwa puste ciągi.
"\\\\s"?
W większości dialektów wyrażeń regularnych istnieje zestaw wygodnych streszczeń postaci, których możesz użyć do tego rodzaju rzeczy - warto o nich pamiętać:
\w - Dopasowuje dowolny znak słowa.
\W - Dopasowuje dowolny znak niebędący słowem.
\s - Pasuje do każdego znaku białej spacji.
\S - Pasuje do wszystkich znaków oprócz białych znaków.
\d - Pasuje do dowolnej cyfry.
\D - Dopasowuje wszystko oprócz cyfr.
Poszukiwanie „Regex Cheatsheets” powinno nagrodzić cię wieloma przydatnymi streszczeniami.
Aby to działało w JavaScript , musiałem wykonać następujące czynności:
myString.split(/\s+/g)
„\\ s +” powinno załatwić sprawę
Możesz także mieć niełamującą spację xA0 UniCode ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang ma metodę dzielenia łańcucha znakami spacji jako ograniczników:
StringUtils.split("abc def")
Może to być łatwiejsze w użyciu niż wzorzec wyrażenia regularnego.
możesz podzielić ciąg według podziału wiersza, używając następującej instrukcji:
String textStr[] = yourString.split("\\r?\\n");
możesz podzielić ciąg według białych znaków, używając następującej instrukcji:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Przestudiuj ten kod ... powodzenia
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);
}
}
}