То, что у вас есть, должно сработать. Однако, если предоставленные пробелы по умолчанию равны ... чему-то другому? Вы можете использовать регулярное выражение с пробелами:
str = "Hello I'm your String"; String[] splited = str.split("\\s+");
Это приведет к тому, что любое количество последовательных пробелов разделит вашу строку на токены.
Ответ 2
Хотя принятый ответ хорош, имейте в виду, что в конечном итоге вы получите начальную пустую строку, если ваша входная строка начинается с пробела. Например, с помощью:
Stringstr=" Hello I'm your String"; String[] splitStr = str.split("\\s+");
Возможно, вам захочется обрезать строку перед ее разделением:
Stringstr=" Hello I'm your String"; String[] splitStr = str.trim().split("\\s+");
[править]
В дополнение к trim предостережению, возможно, вам захочется рассмотреть неразрывный символ пробела в юникоде (U+00A0). Этот символ печатается точно так же, как обычный пробел в строке, и часто скрывается в скопированном тексте из редакторов расширенного текста или веб-страниц. Они не обрабатываются .trim() какими тестами на удаление символов, используемыми для их удаления c <= ' '; \s также не будут их перехватывать.
Вместо этого вы можете использовать \p{Blank} но вам также нужно включить поддержку символов Unicode, чего не сделает обычный split. Например, это сработает: Pattern.compile("\\p{Blank}", UNICODE_CHARACTER_CLASS).split(words) но это не выполнит trim часть.
Следующее демонстрирует проблему и предлагает решение. Для этого далеко от оптимального полагаться на регулярное выражение, но теперь, когда Java имеет 8-битное / 16-битное представление, эффективное решение для этого становится довольно длинным.
Я действительно считаю, что помещение регулярного выражения в круглые скобки str.split должно решить проблему. Метод Java String.split() основан на регулярных выражениях, поэтому вам нужно:
str = "Hello I'm your String"; String[] splitStr = str.split("\\s+");
Ответ 4
Используйте Stringutils.split() для разделения строки на белые интервалы. Например, StringUtils.split("Hello World") возвращает "Hello" и "World";
Для решения упомянутого случая мы используем метод разделения, подобный этому
String split[]= StringUtils.split("Hello I'm your String");
когда мы печатаем разделенный массив, на выходе будет :