C# 添加一个';如果';陈述
我正在尝试让一个数字发生器工作,到目前为止进展顺利,但最近我遇到了一些问题。所以我要做的是用一个默认字符串生成一个生成器,然后在它的末尾添加一些数字。我已经弄清楚了。现在,我正试图使它,如果我的发电机吐出的数字是'5',那么下一个数字将必须是'1'。我不完全确定这是否可行,但以下是我的代码:C# 添加一个';如果';陈述,c#,if-statement,generator,C#,If Statement,Generator,我正在尝试让一个数字发生器工作,到目前为止进展顺利,但最近我遇到了一些问题。所以我要做的是用一个默认字符串生成一个生成器,然后在它的末尾添加一些数字。我已经弄清楚了。现在,我正试图使它,如果我的发电机吐出的数字是'5',那么下一个数字将必须是'1'。我不完全确定这是否可行,但以下是我的代码: public string GenerateRandomCode(int length) { string charPool = "ABCDEF1234567890";
public string GenerateRandomCode(int length)
{
string charPool = "ABCDEF1234567890";
StringBuilder rs = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++)
{
rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
}
return rs.ToString();
}
public string Random(int length)
{
string charPool = "A457";
StringBuilder rs = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++)
{
rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
}
return rs.ToString();
}
public string Char(int length)
{
string charPool = "ABF35689";
StringBuilder rs = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++)
{
rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
}
return rs.ToString();
}
public string Next(int length)
{
string charPool = "F01";
StringBuilder rs = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++)
{
rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
}
return rs.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "00000001008" + Random(1) + "000" + Char(1) + Next(1) + GenerateRandomCode(15);
}
}
}
公共字符串生成器域代码(int-length)
{
字符串charPool=“ABCDEF1234567890”;
StringBuilder rs=新的StringBuilder();
随机=新随机();
for(int i=0;i
因此,如果Char='5',我想得到下一个等于'1'舒尔,你可以。记住最后一个角色,然后采取行动
// ...
char c = '-';
for (int i = 0; i < length; i++) {
if (c == '5') {
c = '1';
} else {
c = charPool[random.Next(charPool.Length)];
}
rs.Append(c);
}
// ...
/。。。
字符c='-';
for(int i=0;i
random.Next(charPool.Length)
自动生成一个范围为[0…charPool.Length-1]的整数。不确定您的目标,但可能是这样的(?):
因此,每当Char(1)的方法调用返回字符串“5”时,sNext将保持其初始值“1”。否则,如果Char(1)不是“5”,则sNext将被分配给Next(1)的调用结果。我这样做,结果生成了数字,Char结果是5,但Next是0I更正了我的答案。我测试了索引而不是字符。现在已经修好了。抱歉.00000001008-默认字符串| 5-随机| 000 | 5-字符| 0-下一个|这就是最终的结果generated@Daktota,有什么问题吗?我的意思是,如果这不是你所期望的,请举例说明你所期望的输出。@Dakota,我在你回答时编辑了我的评论。虽然我所说的仍然是真的,但我认为这不是一个增进你知识的好方法,嗯……:)0000000 1008500051而不是0000000 1008500050我明白,我只是没有我应该具备的职业道德have@Dakota,现在我明白你的评论了。你说下一个是零。在我看来,你的按钮点击方法与我在回答中发布的版本不同。请检查,如果你的代码与我的完全相同。(请注意,
if(sChar!=“5”)
除了保留sNext=“1”
——显然您的代码是不同的……)
private void button1_Click(object sender, EventArgs e)
{
string sRandom = Random(1);
string sChar = Char(1);
string sNext = "1";
if (sChar != "5") sNext = Next(1);
textBox1.Text = "00000001008" + sRandom + "000" + sChar + sNext + GenerateRandomCode(15);
}