假设我有以下的代码块:
当我执行这段代码时,为什么会输出
很显然与
String x = "Hello ++ World!";
if(x.contains(" ++ "))
System.out.println(x.split(" ++ ")[0]);
当我执行这段代码时,为什么会输出
Hello ++ World!
而不是Hello
?很显然与
split()
有关,但我想不出来。
split
函数接受一个正则表达式。在正则表达式的上下文中,+
符号代表具有特殊含义的字符。 - MC EmperorString.split(String)
方法将参数视为正则表达式,其中+
具有特殊含义。请尝试使用split(" \\+\\+ ")
或split(Pattern.quote(" ++ "))
代替。 - Thomas