Відповіді:
Щось у рядках
myString.split("\\s+");
Це об'єднує всі пробіли як роздільник.
Тож якщо у мене є рядок:
"Hello[space][tab]World"
Це повинно отримати рядки "Hello"
та "World"
пропустити порожній простір між [space]
і [tab]
.
Як вказував VonC, зворотну косу рису слід уникати, тому що Java спершу спробує уникнути рядка до спеціального символу та надішле його на розбір. Те, що ви хочете, це буквальне "\s"
, а це означає, що вам потрібно пройти "\\s"
. Це може стати трохи заплутаним.
\\s
Еквівалентно [ \\t\\n\\x0B\\f\\r]
.
trim()
спочатку: trim().split("\\s++")
- інакше, наприклад, розщеплення `abc` спочатку видасть дві порожні рядки.
"\\\\s"
?
У більшості діалектних регексів є набір зручних резюме символів, які ви можете використовувати для подібних речей - це добре запам'ятати:
\w
- Відповідає будь-якому символу слова.
\W
- Відповідає будь-якому несловесному символу.
\s
- Відповідає будь-якому символу пробілу.
\S
- Відповідає будь-що, крім символів пробілу.
\d
- Відповідає будь-якій цифрі.
\D
- Відповідає нічого, крім цифр.
Пошук «Шахрайків Regex» повинен нагородити вас цілою масою корисних резюме.
Щоб це працювало в Javascript , мені довелося зробити наступне:
myString.split(/\s+/g)
"\\ s +" має зробити трюк
Також у вас може бути пробіл UnAc, що не порушує xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang має метод розділити рядок з символами пробілу як роздільники:
StringUtils.split("abc def")
Це може бути простішим у використанні, ніж шаблон регулярного виразів.
ви можете розділити рядок на розрив рядка, скориставшись наступним висловом:
String textStr[] = yourString.split("\\r?\\n");
ви можете розділити рядок по Whitespace, скориставшись наступним оператором:
String textStr[] = yourString.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
Вивчіть цей код .. удачі
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);
}
}
}