【问题标题】:Splitting a string with multiple spaces用多个空格分割字符串
【发布时间】:2012-04-22 04:37:04
【问题描述】:

我想分割一个像

这样的字符串
"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"},但不知道如何。

感谢您的帮助!

【问题讨论】:

  • YOURSTRING.split(/\s+/ig)

标签: java regex string split


【解决方案1】:

这对我有用。

s.split(/\s+/)

var foo = "first     middle  last";

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

【讨论】:

  • 这是 java 不是 javascript
【解决方案2】:

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

TextUtils.split(stringToSplit, " +");

【讨论】:

  • 使用 Android SDK 功能而不是更便携的代码的原因是什么?
【解决方案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,} 部分定义至少需要 2 个和最多几乎无限个空格字符才能进行拆分。

【讨论】:

    【解决方案4】:

    由于split() 的参数是regular expression,因此您可以查找一个或多个空格(" +"),而不仅仅是一个空格(" ")。

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

    【讨论】:

    • 嗯,我从没想过只使用“+”,我总是更习惯使用“\\s+”。好主意!
    • @Kevin,好吧,\s 不仅仅包含空格。
    • 我还建议在 split() 之前添加 trim(): s.trim().split(" +") 来处理像 " first middle last " 这样的情况
    • 我在 Chrome 中尝试过,但它对我不起作用。调整为以下使其工作:String[] array = s.split(/\ +/);
    • @AndreM 这是 Java,不是 JavaScript。
    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

      由于split() 使用regular expressions,您可以执行s.split("\\s+") 之类的操作来将拆分分隔符设置为任意数量的空白字符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-16
        • 1970-01-01
        • 2012-09-22
        • 2020-05-16
        • 1970-01-01
        • 2014-12-13
        • 2013-08-02
        • 2023-04-02
        相关资源
        最近更新 更多