我收到如下错误
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”的原因)
非常感谢提前
答案 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']