Как разделять строку с любыми символами пробелов как разделителями?
Какому шаблону регулярного выражения понадобится я, чтобы перейти к методу java.lang.String.split()
чтобы разбить String на массив подстрок, используя все пробельные символы (”, ‘\ t’, ‘\ n’ и т. Д.). как разделители?
- Как проверить, что Java String не все пробелы?
- Как удалить повторяющиеся пробелы в строке с помощью Java?
- В Haskell, когда мы используем это с let?
- Как обрезать ведущие и завершающие пробелы?
- Обеспечение пробела в графическом интерфейсе Swing
- Как заменить несколько пробелов одним пробелом
- Как удалить ведущие и конечные пробелы в поле MySQL?
- Прямоугольное соответствие Regex - Java
Что-то в строках
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")
Это может быть проще в использовании, чем шаблон регулярного выражения.
Поскольку это регулярное выражение, и я предполагаю, что 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); } } }