61

我想拆分一个字符串

"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"}但无法弄清楚如何。

谢谢您的帮助!

4

6 回答 6

145

由于 to 的参数split()是一个正则表达式,您可以查找一个或多个空格 ( " +") 而不仅仅是一个空格 ( " ")。

String[] array = s.split(" +");
于 2012-04-09T20:33:21.320 回答
27

尝试使用这个s.split("\\s+");

于 2012-04-09T20:34:44.940 回答
11

如果你有一个字符串

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,}部分定义至少需要 2 个和最多几乎无限个空格字符才能进行拆分。

于 2013-10-11T11:55:14.897 回答
7

这对我有用。

s.split(/\s+/)

var foo = "first     middle  last";

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

于 2017-09-21T12:53:55.857 回答
3

由于split()使用了正则表达式,因此您可以s.split("\\s+")将拆分分隔符设置为任意数量的空白字符。

于 2012-04-09T20:33:53.937 回答
1

如何使用 Android SDK 开箱即用的东西。

TextUtils.split(stringToSplit, " +");
于 2015-07-24T05:01:08.003 回答