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

Разбиение строки с несколькими пробелами

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

"first     middle  last" 

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

String[] array = {"first","","","","middle","","last"}

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

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

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

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

4b9b3361

Ответ 1

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

String[] array = s.split(" +");

Ответ 2

попробуйте использовать s.split("\\s+");

Ответ 3

если у вас есть строка типа

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,} определяет, что для разрыва требуется не менее двух и от почти до бесконечности символов пробела.

Ответ 4

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

s.split(/\s+/)

var foo = "first     middle  last";

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

Ответ 5

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

Ответ 6

Как насчет использования чего-то, что предоставляется из коробки Android SDK.

TextUtils.split(stringToSplit, " +");