拆分字符串而不忽略空格

时间:2015-03-21 18:31:55

标签: java arrays string split

我正试图找到一种在Java中拆分String而不忽略空格的方法。 搜索后我发现了一种在python中实现它的方法:

re.split(r"(\s+)", "This is the string I want to split")

会导致:

['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split'] 

如何在java中完成?

1 个答案:

答案 0 :(得分:3)

是的,你需要使用外观。

string.split("(?<=\\s+)|(?=\\s+)");
  • (?<=\\s+)匹配一个或多个空格后面的边界。

  • |

  • (?=\\s+)匹配在一个或多个空格之前退出的边界。

  • 根据匹配的边界分割将为您提供所需的输出。

示例:

String s = "This is the string I want to split";
String[] parts = s.split("(?<=\\s+)|(?=\\s+)"); 
System.out.println(Arrays.toString(parts));

<强>输出:

[This,  , is,  , the,  , string,  , I,  , want,  , to,  , split]