Как разделять строку с любыми символами пробелов как разделителями?

Какой шаблон регулярного выражения мне понадобится, чтобы перейти к методу 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

Ответ 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);

        } 
    }
}