これは実際にはのCodingBatからの練習です。指定された部分文字列をJavaで削除する
文字列を指定すると、文字列 "del"がインデックス1から始まる場合、その "del"が削除された文字列を返します。それ以外の場合は、文字列をそのまま返します。
- delDel( "adelbc")→ "ABC"
- delDel( "adelHello") "aHello"
- delDel( "adedbc")→ "adedbc"
→次のように私の仕事は次のとおりです。
public String delDel(String str) {
String del = "del";
if (str.indexOf(del, 1) == 1){
str.replaceFirst("del", null);
}
return str;
}
それはほとんどの場合のために正常に動作しますが、私はNullPoiを取得"adelbc"、 "adelHello"および "adel"というケースでは、nterExceptionがあります。私はなぜそれほど理解できないのですか?
にのみ与えられた署名を持つ関数を提供する必要がありますし、それにテストを実行しますか? – mszymborski
ヌルの代わりに '' '' - 空の文字列を使用するとどうなりますか?たぶん、JREは置き換えられた文字列で何かを実行します。ここでnullを使用するのはかなり奇妙です。 – mszymborski
ローカルでテストしました。置換する文字列として 'null'を使うと' NullPointerException'がスローされます。 '' ''はあなたがしたいことは間違いありません。 – MattDs17