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