我想要一个代码来生成字母数字字符序列,如LLNNLLNNLL,其中L是字母,N是数字。例如,如果长度为5,则序列为LLNNL,如果长度为6,则序列为LLNNLL,如果为7,则为LLNNLLN。
string alphabets = "ABCDEFGHIJKLMNPQRSTUVWX";
int length = model.VALUE_INT;
string result = "";
for (int i = 0; i < length; i++)
{
int next = _random.Next(23);
result += alphabets.ElementAt(next);
result += _randomNum.Next(1, 9);
}这是我尝试过的,但条件并不令人满意。
发布于 2021-12-30 10:40:08
对于输出字符串的每个位置(i值),您需要检查是否需要一个字符或整数。
由于模式每4个位置重复一次,所以可以使用模运算符实现这一点:
for (int i = 0; i < length; i++)
{
switch (i % 4)
{
case 0:
case 1:
int next = _random.Next(23);
result += alphabets.ElementAt(next);
break;
case 2:
case 3:
result += _randomNum.Next(1, 9);
break;
}
}或者另一种可能性:添加LLNN块,然后将结果截断到所需的长度.
for (int i = 0; i <= (length/4); i++)
{
result += alphabets.ElementAt(_random.Next(23));
result += alphabets.ElementAt(_random.Next(23));
result += _randomNum.Next(1, 9);
result += _randomNum.Next(1, 9);
}
result = result.Substring(0,length);如果您想改进这些行,可以使用StringBuilder
https://stackoverflow.com/questions/70530043
复制相似问题