String クラスの replaceAll API を使用中に Null Pointer Exception に遭遇しました。
次に、下に貼り付けた小さなスニペットを試してみましたが、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の原因となるのがこちらです。
2 番目の引数を null として渡せないというルールはありますか?
置換する単語がnullの場合、JVMが置換するものを認識しています。