我有一个像这样的字符数组:
char[] true_false = new char[2]{'V','F'};
变量随机:
Random rand = new Random();
我有一个名为generate_code
的字符串,初始值为true_false[rand.Next(0, 2)].ToString();
string generate_code = true_false[rand.Next(0, 2)].ToString();
用户将设置int lenght_of;
int lenght_of = int.Parse(Console.ReadLine());
所以,我要做的是:用户将定义lenght_of
generate_code
的长度,如下所示:
for(int i =0; i < lenght_of;i++){
generate_code = generate_code + (char)true_false[rand.Next(0, 2)];
}
但问题是我需要一个固定变量,如:
generate_code = (char)true_false[rand.Next(0, 2)] + (char)true_false[rand.Next(0, 2)];
如果lenght_of =2;
并且我有一个循环会将generate_code
值改变十次。我该怎么做? **我希望你们明白这很难解释。
示例:
lenght_of = 2;
//Example "FF";
generate_code = true_false[rand.Next(0, 2)] + true_false[rand.Next(0, 2)];
for(int i =0; i < 10;i++) {
Console.WriteLine(generate_code);
} //Output expected: "FF" "VV" "FV" "VF" "FF"
答案 0 :(得分:1)
您的问题是,您要将两个char
添加到一起。 char
是一种数字类型。因此,您将获得数字作为结果。此外,您的generate_code
作业必须在您的循环中:
for(int i =0; i < 10;i++) {
generate_code = string.Format("{0}", generateCodeWithLength(rand, true_false, lenght_of));
Console.WriteLine(generate_code);
}
将代码生成包含在接受长度的方法中:
public string generateCodeWithLength(Random rand, char[] true_false, int length) {
var result = new StringBuilder(length);
for (var i = 0; i < length; i++) {
result.Append(true_false[rand.Next(0, 2)]);
}
return result.ToString();
}
或者更好..一个StringBuilder
。 Clicky clicky live example
答案 1 :(得分:0)
您需要在循环的每次迭代中刷新generate_code:
for(int i =0; i < 10;i++) {
int loopCounter = 0;
while (loopCounter < length_of)
{
generate_code += true_false[rand.Next(0, 2)]; //Add one more char to generate_code
loopCounter += 1;
}
Console.WriteLine(generate_code);
} //Output expected if length_of = 3: "FFV" "VFV" "FVF" "FFF" "VVV"
这样,每个输出都是随机的。
答案 2 :(得分:0)
或者你也可以这样做:
for(int i =0; i < 10;i++) {
Console.WriteLine(string.Format("{0}{1}", true_false[rand.Next(0, 2)] + true_false[rand.Next(0, 2)]));
}