Подтвердить что ты не робот

Java разделяет строку по пробелу, новую строку, вкладку, пунктуацию

все.

У меня есть строка, подобная этой

String message = "This is the new message or something like that, OK";

И я хочу разбить его на массив

String[] dic = {"this", "is", "the", "new", "message", "or", "something", "like", "that", "OK"};

Я использовал

message = message.split("\\s+");

Проблема заключалась в том, что в нем содержалось "это", а не "это", как я хочу. Пожалуйста, научите меня, как его решить. Благодаря

4b9b3361

Ответ 1

Вы можете сделать

String[] dic = message.split("\\W+");

\\W означает не буквенно-цифровой символ.

Ответ 2

Используйте Guava:

// define splitter as a constant
private static final Splitter SPLITTER =
Splitter.on(CharMatcher.WHITESPACE.or(CharMatcher.is(','))
        .trimResults()
        .omitEmptyStrings();
// ...

// and now use it in your code
String[] str = Iterables.toArray(SPLITTER.split(yourString), String.class);

Ответ 3

Вы можете использовать StringTokenizer

 String message = "This is the new message or something like that, OK";
 String delim = " \n\r\t,.;"; //insert here all delimitators
 StringTokenizer st = new StringTokenizer(message,delim);
 while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
 }