java - 按空格拆分字符串,Java

标签 java regex split

这是一个字符串:

String s = "119 days 6 hours 13 minutes 24 seconds";

如何拆分以获得这样的数组:

{
  "119 days",
  "6 hours",
  "13 minutes",
  "24 seconds"
}

我不知道自己怎么做。

我查找了 String.split() 并尝试了 [a-z]\s regExp,但它删除了最后一个字符

最佳答案

针对此特定情况的一种方法是使用负向回顾 进行拆分。

import java.util.Arrays;

class rTest {
  public static void main (String[] args) {
    String s = "119 days 6 hours 13 minutes 24 seconds";
    String[] parts = s.split("(?<![^a-zA-Z])\\s");
    System.out.println(Arrays.toString(parts));
  }
}

正则表达式:

(?<!           look behind to see if there is not:
 [^a-zA-Z]     any character except: 'a' to 'z', 'A' to 'Z'
)              end of look-behind
\s             whitespace (\n, \r, \t, \f, and " ")

输出

[119 days, 6 hours, 13 minutes, 24 seconds]

关于java - 按空格拆分字符串,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19600876/

相关文章:

python - 在字符上拆分,但保留该字符 - python

java - 在java中查找和替换重复项

c# - 解析同一个字符串给出两个不同的值

用于查找 CSV 数字的 MySQL 正则表达式

Java 拆分空格和特殊字符

Python:使用多处理分块处理大型字典

java - 不允许非成员(member)显示jsp页面

Java飞行记录器以编程方式解析

Java-位操作

regex - 使用 CFML 删除特定 HTML 标签