Какой шаблон регулярного выражения мне понадобится, чтобы перейти к методу java.lang.String.split()
, чтобы разделить String на массив подстрок, используя все символы пробелов ('', '\ t', '\n' и т.д.) в качестве разделителей?
Как разделять строку с любыми символами пробелов как разделителями?
Ответ 1
Что-то в строках
myString.split("\\s+");
Это группирует все пробелы в качестве разделителя.
Итак, если у меня есть строка:
"Hello[space][tab]World"
Это должно привести к строкам "Hello"
и "World"
и опустить пустое пространство между [space]
и [tab]
.
Как указывал VonC, обратная косая черта должна быть экранирована, потому что Java сначала попытается вывести строку на специальный символ и отправить ее для анализа. То, что вы хотите, это буквальный "\s"
, что означает, что вам нужно пройти "\\s"
. Это может немного запутать.
\\s
эквивалентен [ \\t\\n\\x0B\\f\\r]
Ответ 2
В большинстве диалектов regex есть набор удобных сокращений персонажей, которые вы можете использовать для такого рода вещей - это хорошие воспоминания:
\w
- Соответствует любому символу слова.
\w
- Соответствует любому символу без слова.
\s
- Соответствует любому символу пробела.
\s
- Совпадает с символами пробела.
\d
- Соответствует любой цифре.
\d
- Соответствует всем, кроме цифр.
Поиск "Regex Cheatsheets" должен вознаградить вас множеством полезных резюме.
Ответ 3
Чтобы получить эту рабочую в Javascript, мне пришлось сделать следующее:
myString.split(/\s+/g)
Ответ 4
"\\ s +" должен сделать трюк
Ответ 5
Также у вас может быть UniCode неразрывное пространство xA0...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Ответ 6
Apache Commons Lang имеет метод разбиения строки с символами пробела в качестве разделителей:
StringUtils.split("abc def")
Это может быть проще в использовании, чем шаблон регулярного выражения.
Ответ 7
String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");
Ответ 8
Так как это регулярное выражение, и я предполагаю, что u также не захочет не буквенно-цифровых символов, таких как запятые, точки и т.д., которые могут быть окружены пробелами (например, "один, два" должны дать [один] [два ]), это должно быть:
myString.split(/[\s\W]+/)
Ответ 9
вы можете разделить строку на разрыв строки, используя следующую инструкцию:
String textStr[] = yourString.split("\\r?\\n");
вы можете разделить строку на Whitespace, используя следующую инструкцию:
String textStr[] = yourString.split("\\s+");
Ответ 10
String str = "Hello World";
String res[] = str.split("\\s+");
Ответ 11
Изучите этот код.. удачи
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);
}
}
}