文中の単語をアスタリスクに置き換えるJavaプログラム
文章の中から特定の単語を見つけて、アスタリスク(*)に置き換えたい場面は意外と多くあります。例えば、不適切なワードのマスキングや、ネタバレ防止のテキスト加工などが挙げられます。本記事では、そのような処理を実現するJavaプログラムのサンプルコードと、その動作の仕組みをわかりやすく解説します。
サンプルコード
public class Demo{
static String replace_word(String sentence, String pattern){
String[] word_list = sentence.split("\\s+");
String my_result = "";
String asterisk_val = "";
for (int i = 0; i < pattern.length(); i++)
asterisk_val += '*';
int my_index = 0;
for (String i : word_list){
if (i.compareTo(pattern) == 0)
word_list[my_index] = asterisk_val;
my_index++;
}
for (String i : word_list)
my_result += i + ' ';
return my_result;
}
public static void main(String[] args){
String sentence = "This is a sample only, the sky is blue, water is transparent ";
String pattern = "sample";
System.out.println(replace_word(sentence, pattern));
}
}実行結果
This is a ****** only, the sky is blue, water is transparent
上記の出力では、文中の「sample」が同じ文字数分のアスタリスク「******」に置き換えられていることが確認できます。
プログラムの解説
1. クラスとメソッドの構成
このプログラムでは、「Demo」というクラス内に「replace_word」メソッドが定義されています。このメソッドは、対象となる文章(sentence)と、置き換えたい単語のパターン(pattern)の2つを引数として受け取ります。
2. 文章の分割処理
まず、split("\\s+") メソッドを使って文章を空白文字で分割し、各単語を文字列配列(word_list)に格納します。「\\s+」は正規表現であり、1つ以上の連続する空白文字を区切り文字として扱うことを意味します。
3. アスタリスク文字列の生成
次に、空の文字列を用意し、パターン(置換対象の単語)の長さ分だけループ処理を行い、その長さと同じ数のアスタリスク「*」を連結して作成します。これにより、元の単語と同じ文字数のマスキング文字列が生成されます。
4. 単語の比較と置き換え
拡張for文を使って配列内の各単語を順番に取り出し、compareTo メソッドでパターンと比較します。両者が完全に一致した場合(戻り値が0の場合)、その位置の単語をアスタリスク文字列で置き換えます。
5. 結果の結合と出力
最後に、置き換え後のすべての単語をスペース区切りで連結して1つの文字列にまとめ、それをコンソールに出力しています。
応用ポイント
このコードは大文字・小文字を厳密に区別して比較を行います。大文字小文字を無視して置き換えたい場合は、compareToIgnoreCase を使用するとよいでしょう。また、より柔軟な置換処理が必要な場合は、正規表現を活用した replaceAll メソッドを使う方法も検討できます。
-
【初心者向け】Pythonで文字列内の「a」をすべて「$」に置き換える方法
文字列の中に含まれる特定の文字(ここでは「a」)を、別の文字(ここでは「$」)にすべて置き換えたいケースはよくあります。Pythonでは、文字列を1文字ずつ反復処理しながら「+=」演算子で新しい文字列を組み立てることで、この処理を実現できます。 サンプルコード 以下に、実際の実装例を示します。 my_str = Jane Will Rob Harry Fanch Dave Nancy changed_str = for char in range(0, len(my_str)): if(my_str[char] == a): changed_str += $
-
Pythonで文中の単語をアスタリスク(伏せ字)に置き換える方法
プログラムを活用すると、文章に含まれる特定の単語をアスタリスク(*)に置き換えることで、暴力的な表現や不適切な言葉などを簡単に伏せ字にすることができます。処理のイメージたとえば、次のような文章があったとします。Go feed all the ducks in the lakeここで「ducks」という単語をアスタリスクに置き換えたい場合、最終的な出力は次のようになります。Go feed all the ***** in the lakereplace関数を使った実装この機能は、Pythonの文字列メソッドである replace() を使うことでシンプルに実現できます。ポイントは、置き換え後のア