Ответ 1
Поскольку аргумент split()
является регулярным выражением, вы можете искать один или несколько (" +"
) вместо одного пробела (" "
).
String[] array = s.split(" +");
Я хочу разбить строку как
"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"}
, но не могу понять, как это сделать.
Спасибо за помощь!
Поскольку аргумент split()
является регулярным выражением, вы можете искать один или несколько (" +"
) вместо одного пробела (" "
).
String[] array = s.split(" +");
попробуйте использовать s.split("\\s+");
если у вас есть строка типа
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,}
определяет, что для разрыва требуется не менее двух и от почти до бесконечности символов пробела.
Это сработало для меня.
s.split(/\s+/)
var foo = "first middle last";
console.log(foo.split(/\s+/));
Так как split()
использует регулярные выражения, вы можете сделать что-то вроде s.split("\\s+")
, чтобы установить разделитель разметки как любое количество пробельных символов.
Как насчет использования чего-то, что предоставляется из коробки Android SDK.
TextUtils.split(stringToSplit, " +");