悪い言葉をフィルタリングしようとして、Java の「置換」機能が意図したほど便利ではないことがわかりました。以下のコードをご覧ください: 例: 「abcde」という単語を考えて、「a***e」にフィルターをかけたいとします。
String test = "abcde";
for (int i = 1; i < sdf.length() - 1; i++) {
test= test.replace(test.charAt(i), '*');
}
System.out.print(test);
出力:a***e
しかし、文字列が の場合String test = "bbcde";
、出力は****e
です。単語に繰り返し文字がある場合(ここのように)、replace
関数は繰り返し文字も置き換えます。なぜそうなのですか?最初と最後の文字を除く単語をフィルタリングしたい。