如何从文件中替换40%的字符? C#

时间:2012-06-25 20:00:13

标签: c# .net

我有一个包含这样字符的文本文件(例如:): 嗨,伙计。怎么样凉。 LOOL。喜欢这个东西。真实的。 yep.no way.it's real.haha。

这个字符是预定的,在这种情况下是'。'我应该用另一个角色替换这个角色的40%。 40%的字符是随机选择的(只选择'。')。我将如何找到这些字符,然后替换它们?

2 个答案:

答案 0 :(得分:3)

您可以找到。的数字,例如:20并存储索引。成阵列 您可以找到有多少要删除的内容:示例:8 然后循环遍历索引数组8次,从该数组中获取一个随机数并用空格替换该索引。顺便说一下,你需要在每次更新时从数组中删除更新的索引。

答案 1 :(得分: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 []将包含你所有。的所有索引(假设具体为Char ='。')。我='。'的数量。不要将上面的代码作为准备推出,但它通常对你的问题是正确的。

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

然后将索引[x]中的字符替换为''