Разделить строку на кириллице на слова, используя String.split(regex)
В сервлет поступает строка из http-запроса (у запроса установлена кодировка utf-8). Разделяю строку на слова с помощью split("\\W+"). С латиницей работает, а с кириллицей - нет. Как разбить на не словесные символы строку на кириллице?
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Попробуйте перечислить кириллицу в регулярке:
split("[^а-яА-ЯёЁ\\w]")
Автор решения: Stanislav Volodarskiy
→ Ссылка
split("\\W+") выделяет слова только из ASCII символов.
split("\\P{L}+") выделяет слова на всех языках мира:
import java.util.Scanner;
public class GetWords {
public static void main(String... args) {
Scanner s = new Scanner(System.in);
while (s.hasNextLine()) {
String line = s.nextLine();
String[] words = line.split("\\P{L}+");
for (String w : words) {
System.out.println("\"" + w + "\"");
}
System.out.println();
}
}
}
$ javac GetWords.java $ echo "Hello world! Привет, мир! 你好,世界!" | java GetWords "Hello" "world" "Привет" "мир" "你好" "世界"