Java官方文档声明:
例如,字符串"boo:and:foo"
会产生以下结果,其中包含以下表达式Regex Result:
{ "boo", "and", "foo" }"
这就是我需要的工作方式。但是,如果我运行以下命令:
public static void main(String[] args){
String test = "A|B|C||D";
String[] result = test.split("|");
for(String s : result){
System.out.println(">"+s+"<");
}
}
它打印:
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<
这与我的预期相去甚远:
>A<
>B<
>C<
><
>D<
为什么会发生这种情况?
发布于 2014-01-10 00:07:54
使用适当的转义:string.split("\\|")
或者,在Java 5+中,使用为此目的而创建的帮助程序Pattern.quote()
:
string.split(Pattern.quote("|"))
它可以处理任意输入字符串。当你需要引用/转义用户输入时非常有用。
发布于 2016-09-01 16:46:59
使用以下代码:
public static void main(String[] args) {
String test = "A|B|C||D";
String[] result = test.split("\\|");
for (String s : result) {
System.out.println(">" + s + "<");
}
}
发布于 2015-11-29 21:48:37
您还可以使用apache库并执行以下操作:
StringUtils.split(test, "|");
https://stackoverflow.com/questions/10796160
复制相似问题