-5

次のような文字を含むテキスト ファイルがあります (例): こんにちは。どうですか。いいね。笑。このことが大好きです。本当に。ええ、まさか、それは本当です.haha.

この文字はあらかじめ決められており、この場合は「.」です。このキャラクターの 40% を別のキャラクターに置き換えることになっています。文字の 40% はランダムに選択されます (「.」からのみ選択されます)。これらの文字を見つけて、それらを置き換えるにはどうすればよいですか?

4

2 に答える 2

3

の数を見つけます。例:20で、のインデックスを格納します。配列に削除するものの数を見つけます。例:8次に、インデックスの配列を8回ループし、その配列からランダムなものを取得して、そのインデックスをスペースに置き換えます。ところで、更新のたびに、更新されたインデックスを配列から削除する必要があります。

于 2012-06-25T20:06:10.433 に答える
0

あなたがしたいことは、「。」のすべてのインデックスを見つけることです。この場合は配列です。これらのインデックスをすべて取得したら、最大のインデックスを取得し、それを乱数ジェネレーターの最大値として使用します。最大のインデックスを 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] の文字を ' ' に置き換えます。

于 2012-06-25T20:11:56.660 に答える