12 ответов:
что-то в строках
myString.split("\s+");это группирует все пробелы в качестве разделителя.
так что если у меня есть строка:
"Hello[space][tab]World"это должно дать строки
"Hello"и"World"и опустить пустое пространство между[space]и[tab].как указал VonC, обратная косая черта должна быть экранирована, потому что Java сначала попытается экранировать строку до специального символа и отправить это чтобы быть разобранным. То, что вы хотите, является буквальным
"\s", что означает, что вам нужно пройти"\s". Это может немного запутать.The
\sэквивалентно[ \t\n\x0B\f\r]
в большинстве диалектов регулярных выражений есть набор удобных резюме символов, которые вы можете использовать для такого рода вещей - это хорошие, чтобы помнить:
\w- соответствует любому символу слова.
\W- соответствует любому несловесным символом.
\s- соответствует любому пробельному символу.
\S- соответствует все, кроме пробелов символов.
\d- соответствует любой цифре.
\D- играм все, кроме цифр.поиск "Regex Cheatsheets" должен вознаградить вас целым рядом полезных резюме.
также у вас может быть UniCode неразрывное пространство xA0...
String[] elements = s.split("[\s\xA0]+"); //include uniCode non-breaking
Apache Commons Lang имеет метод разделения строки с пробелами в качестве разделителей:
StringUtils.split("abc def")Это может быть проще в использовании, чем regex образец.
поскольку это регулярное выражение, и я предполагаю, что u также не хочет не буквенно-цифровых символов, таких как запятые, точки и т. д., которые могут быть окружены пробелами (например, "один, два" должны давать [один][два]), это должно быть:
myString.split(/[\s\W]+/)
вы можете разделить строку на строки с помощью следующей инструкции :
String textStr[] = yourString.split("\r?\n");вы можете разделить строку пробелами, используя следующую инструкцию:
String textStr[] = yourString.split("\s+");
Я удивлен, что никто не упомянул строку.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); } } }
Comments