使用file.separator分割Groovy

时间:2014-12-02 19:52:22

标签: groovy split

我收到如下错误

Groovy script throws an exception of type class 
java.util.regex.PatternSyntaxException with message = 
Unexpected internal error near index 1
\
 ^
来自Split语句的

如下:

 String strClassPath = System.getProperty("java.class.path");
 String[] path = strClassPath.split(System.getProperty("file.separator"));

我应该如何为UNIX和Windows系统正常工作(这就是我使用“file.separator”的原因)

非常感谢提前

1 个答案:

答案 0 :(得分:4)

这称为java split(String regexp)。所以你的输入必须是regexp(或必须引用):

import java.util.regex.Pattern

def cp = {path, sep ->
    path.split(Pattern.quote(sep)) 
}

assert cp('C:\\window\\something\\groovy.jar', '\\') == ['C:', 'window', 'something', 'groovy.jar']
assert cp('/usr/local/share/groovy.jar', '/') == ['', 'usr', 'local', 'share', 'groovy.jar']

regexp / split这么多。如果您在路径之后,最好使用Path。 e.g。

assert new File('/usr/local/share/groovy.jar').toPath().collect()*.toString() == ['usr', 'local', 'share', 'groovy.jar']