Вопрос по regex, java, string – Разделение строки несколькими пробелами

47

Я хочу разбить строку как

<code>"first     middle  last" 
</code>

сString.split(), Но когда я пытаюсь разделить его, я получаю

<code>String[] array = {"first","","","","middle","","last"}
</code>

Я пытался с помощьюString.isEmpty() проверить пустые строки после того, как я их разделил, но в Android это не работает. Вот мой код:

<code>String s = "First  Middle Last";
String[] array = s.split(" ");
for(int i=0; i<array.length; i++) {
  //displays segmented strings here
}
</code>

Я думаю, что есть способ разделить это так:{"first","middle","last"} но не могу понять, как.

Спасибо за помощь!

Ваш Ответ

6   ответов
4

Это сработало для меня.

s.split(/\s+/)

var foo = "first     middle  last";

console.log(foo.split(/\s+/));

это java, а не javascript
128

Поскольку аргументsplit() эторегулярное выражениеВы можете искать одно или несколько мест (" +") вместо одного пробела (" ").

String[] array = s.split(" +");
хм, я никогда не думал об использовании просто & quot; + & Quot; я всегда более традиционен, используя "\\ s +". Отличная идея!
@ Кевин, хорошо,\s включает в себя больше, чем просто пробелы.
@AndreM Это Java, а не JavaScript.
Я также предлагаю добавить trim () перед split ():s.trim().split(" +") обрабатывать такие случаи, как" first middle last "
Я попробовал это в Chrome, и у меня это не сработало. Приспосабливаясь к следующему, он заработал:String[] array = s.split(/\ +/);
25

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

8

String s = "This is a test string  This is the next part    This is the third part";

и хочу получить массив как

String[] sArray = { "This is a test string", "This is the next part", "This is the third part" }

тебе стоит попробовать

String[] sArray = s.split("\\s{2,}");

{2,} part определяет, что для расщепления необходимы как минимум 2 и почти бесконечные пробельные символы.

2

split() использованиярегулярные выражения, вы можете сделать что-то вродеs.split("\\s+") установить разделитель разделителя на любое количество пробельных символов.

1

что поставляется из коробки Android SDK.

TextUtils.split(stringToSplit, " +");
В чем причина использования функций Android SDK вместо более переносимого кода?

Похожие вопросы