【问题标题】:Java. How can I split a string with multiple spaces on every nth space? [duplicate]爪哇。如何在每个第 n 个空格上拆分具有多个空格的字符串? [复制]
【发布时间】:2013-12-24 02:55:21
【问题描述】:

这是一个示例字符串,我打算将其拆分为一个数组:

Hello My Name Is The Mighty Llama

输出应该是:

Hello My
Name Is
The Mighty
Llama

下面的每个空间都拆分,我如何在其他空间上拆分?

String[] stringArray = string.split("\\s");

【问题讨论】:

  • 为什么不直接拆分它并从结果数组中获取备用索引?

标签: java string


【解决方案1】:

你可以这样做:

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

【讨论】:

  • 我会使用\S+ 而不是\w+
  • 我可以验证这是否有效。
  • 我也是。极好的工作。谢谢大家。
【解决方案2】:

虽然可以像this one 那样使用拆分来解决它,但我强烈建议对PatternMatcher 类使用更具可读性的方式。这是解决它的示例之一:

String string="Hello My Name Is The Mighty Llama";
Pattern p = Pattern.compile("\\S+(\\s\\S+)?");
Matcher m = p.matcher(string);
while (m.find())
    System.out.println(m.group());

输出:

Hello My
Name Is
The Mighty
Llama

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多