【发布时间】:2019-09-22 02:30:15
【问题描述】:
假设我有这段代码:
String x = "Hello ++ World!";
if(x.contains(" ++ "))
System.out.println(x.split(" ++ ")[0]);
为什么当我执行这段代码时,我收到了输出:
-
Hello ++ World!而不是Hello?
这显然与split()有关,但是,我想不通。
【问题讨论】:
-
split接受正则表达式。+字符是在正则表达式上下文中具有特殊含义的字符。 -
String.split(String)将参数视为正则表达式,其中+具有特殊含义。请改用split(" \\+\\+ ")或split(Pattern.quote(" ++ "))。