【问题标题】:Java. Splitting a multiple word string into two word strings every space [closed]爪哇。每个空格将多个单词字符串拆分为两个单词字符串[关闭]
【发布时间】:2013-12-07 10:00:39
【问题描述】:

昨晚第一轮回答here。 @Reimeus 提供的解决方案很棒,并提供以下输出:

My name is the mighty llama

收件人:

String[] stringArray = string.split("(?<!\\G\\S+)\\s");

My name 
is the
mighty llama

但是,我现在发现自己需要纠正我正在做的事情。我实际上需要能够像这样拆分字符串。

My name
name is
is the
the mighty
mighty llama

【问题讨论】:

  • 你不能把它拆分成单个单词并在代码中构建你需要的数组吗?
  • 你有没有尝试过,或者你正在将你的工作外包给 SO?
  • @Szymon 我可以,事实上我做到了。然而,因为我在十分钟的时间内对大约 1000 篇文章执行此操作,所以我想避免循环浏览这些文章。因为我不熟悉正则表达式,所以我问你们。
  • 正则表达式也不是魔法,它也需要时间来处理它。拆分的问题是您必须回到已经拆分的部分。

标签: java regex


【解决方案1】:

您可以将其拆分为单个单词并在代码中构建所需的数组。

String string = "My name is the mighty llama";
String[] stringArray = string.split(" ");
String[] outputArray = new String[stringArray.length - 1];
for (int i = 0; i < stringArray.length - 1; i++) {
    outputArray[i] = stringArray[i] + " " + stringArray[i+1];
}

【讨论】:

    【解决方案2】:

    您不能使用String.split() 复制令牌,因为正则表达式用于搜索。

    如果不进行某种编辑,您将无法做到这一点,也许 String.replaceAll() 会完成。

    【讨论】:

    • 非常感谢。最后,我从整个字符串中删除了第一个单词并再次拆分。
    猜你喜欢
    • 2017-06-25
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    相关资源
    最近更新 更多