我在使用 String 类的 replaceAll API 时遇到了空指针异常。
然后我尝试在下面粘贴小片段,我得到了 NPE。
String s = "HELLO @WORLD@ I AM.";
System.out.println(s.replaceAll("@WORLD@", null)) ;
我也在 String.java 类中发现了
public Matcher appendReplacement(StringBuffer sb, String replacement) {
.......//code
while (cursor < replacement.length()) { ..//code}
.......//code
}
所以这里它调用replacement.length()
这是 NPE 的原因。
是否有我们不能将第二个参数作为空值传递的规则?
我知道如果您的替换词为空,JVM 将替换什么。