我正试图找到一种在Java中拆分String而不忽略空格的方法。 搜索后我发现了一种在python中实现它的方法:
re.split(r"(\s+)", "This is the string I want to split")
会导致:
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']
如何在java中完成?
答案 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]