假设我有以下代码块:
String x = "Hello ++ World!";
if(x.contains(" ++ "))
System.out.println(x.split(" ++ ")[0]);
Run Code Online (Sandbox Code Playgroud)
为什么执行此代码时会收到输出:
Hello ++ World!代替Hello?显然,它与有关split(),但是,我无法弄清楚。
该方法String::split使用正则表达式进行拆分。您的表达式" ++ "是一个正则表达式,并且该+字符具有特殊含义。从文档中:
围绕给定正则表达式的匹配项拆分此字符串。
您必须转义这些字符:
System.out.println(x.split(" \\+\\+ ")[0]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |