Ответы:
Что-то в строках
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);
}
}
}