次のような文字を含むテキスト ファイルがあります (例): こんにちは。どうですか。いいね。笑。このことが大好きです。本当に。ええ、まさか、それは本当です.haha.
この文字はあらかじめ決められており、この場合は「.」です。このキャラクターの 40% を別のキャラクターに置き換えることになっています。文字の 40% はランダムに選択されます (「.」からのみ選択されます)。これらの文字を見つけて、それらを置き換えるにはどうすればよいですか?
の数を見つけます。例:20で、のインデックスを格納します。配列に削除するものの数を見つけます。例:8次に、インデックスの配列を8回ループし、その配列からランダムなものを取得して、そのインデックスをスペースに置き換えます。ところで、更新のたびに、更新されたインデックスを配列から削除する必要があります。
あなたがしたいことは、「。」のすべてのインデックスを見つけることです。この場合は配列です。これらのインデックスをすべて取得したら、最大のインデックスを取得し、それを乱数ジェネレーターの最大値として使用します。最大のインデックスを 40 で割ると、文字を置き換える必要がある回数がわかります。生成した乱数を取得し、それらのインデックスで文字の置換を開始します。
int i = 0, chr[] = 0;
while (chr[i] != -1)
{
if (string.indexof(specifiedChar, chr[i]) != -1)
{
chr[i] = string.indexof(specifiedChar, chr);
i ++;
}
else
{
chr = -1;
}
}
chr[] には、すべての . のインデックスが含まれます (gi specificedChar = '.' と仮定します)。i = '.' の数。上記のコードをロールアウトする準備ができているとは思わないでください。ただし、通常は問題に対して正しいものです。
endInt = i;
int x = RandomNumber.Next(startInt, endInt);
次に、index[x] の文字を ' ' に置き換えます。