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

Какому шаблону регулярного выражения понадобится я, чтобы перейти к методу java.lang.String.split() чтобы разбить String на массив подстрок, используя все пробельные символы (”, ‘\ t’, ‘\ n’ и т. Д.). как разделители?

Что-то в строках

 myString.split("\\s+"); 

Это группирует все пробелы как разделитель.

Поэтому, если у меня есть строка:

"Hello[space][tab]World"

Это должно привести к строкам "Hello" и "World" и опустить пустое пространство между [space] и [tab] .

Как указывал VonC, обратная косая черта должна быть экранирована, потому что Java сначала попытается убедить строку в специальном символе и отправить ее для анализа. То, что вы хотите, является буквальным "\s" , что означает, что вам нужно передать "\\s" . Это может немного запутать.

\\s эквивалентно [ \\t\\n\\x0B\\f\\r]

В большинстве диалектов регулярных выражений есть набор удобных описаний персонажей, которые вы можете использовать для такого рода вещей – это хорошие воспоминания:

\w – Соответствует любому символу слова.

\W – Соответствует любому символу без слова.

\s – Соответствует любому символу пробела.

\S – Совпадает с символами пробела.

\d – Соответствует любой цифре.

\D – Соответствует любому значению, кроме цифр.

Поиск «Regex Cheatsheets» должен вознаgradleить вас множеством полезных резюме.

Чтобы заставить это работать в Javascript , мне пришлось сделать следующее:

 myString.split(/\s+/g) 

«\\ s +» должен сделать трюк

Также вы можете иметь UniCode неразрывное пространство xA0 …

 String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking 
 String string = "Ram is going to school"; String[] arrayOfString = string.split("\\s+"); 

Apache Commons Lang имеет метод разделения строки с пробельными символами в качестве разделителей:

 StringUtils.split("abc def") 

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)

Это может быть проще в использовании, чем шаблон регулярного выражения.

Поскольку это регулярное выражение, и я предполагаю, что u также не захочет не буквенно-цифровые символы, такие как запятые, точки и т. Д., Которые могут быть окружены пробелами (например, «один, два» должны дать [один] [два]), должен быть:

 myString.split(/[\s\W]+/) 

вы можете разделить строку на разрыв строки, используя следующую инструкцию:

  String textStr[] = yourString.split("\\r?\\n"); 

вы можете разбить строку на Whitespace, используя следующую инструкцию:

 String textStr[] = yourString.split("\\s+"); 
 String str = "Hello World"; String res[] = str.split("\\s+"); 

Я удивлен, что никто не упоминал String.split () без параметров. Разве это не то, для чего это сделано? как в:

 "abc def ghi".split() 

Изучите этот код .. удачи

  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); } } } 
  • Загадочный пробел между Bootstrap2 Navbar и строкой внизу
  • Чтение строки из ввода с символом пробела?
  • Полоса пробела от выхода jsp
  • Как вы можете вводить пробелы с помощью scanf?
  • Как удалить конечные пробелы с sed?
  • Давайте будем гением компьютера.