-5

我有一个带有这样字符的文本文件(例如): 嗨,伙计。怎么样了。凉爽的。大声笑。喜欢这个东西。真正的。是的,不可能。这是真的。哈哈。

这个字符是预先确定的,在这种情况下是“。” 我应该用另一个角色替换这个角色的 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[] 将具有所有 . 的索引(假设我 specificedChar = '.')。i = '.' 的数量。不要将上面的代码视为准备推出,但它通常对您的问题是正确的。

endInt = i;
int x = RandomNumber.Next(startInt, endInt);

然后将 index[x] 处的字符替换为 ' '

于 2012-06-25T20:11:56.660 回答