C#中如何产生随机字符串
如何例用C#产生A到Z数字0到9两种组和之间的随机字符串要求是第次不能重复而且每次都要有数字和字母两者字数是20位我想要的是两次产生或是多次产生的串列没有相同的而不是单次...
如何例用C#产生 A到Z 数字0到9 两种组和之间的随机字符串 要求是
第次不能重复 而且每次都要有 数字和字母两者 字数是 20位
我想要的是 两次产生 或是多次产生的串列 没有相同的 而不是单次里面没有重复的字符 但是一定要是数字和字母都有的 这样我想你搞起来会更简单吧 呵呵 展开
第次不能重复 而且每次都要有 数字和字母两者 字数是 20位
我想要的是 两次产生 或是多次产生的串列 没有相同的 而不是单次里面没有重复的字符 但是一定要是数字和字母都有的 这样我想你搞起来会更简单吧 呵呵 展开
3个回答
展开全部
loop:
List<string> strList = new List<string>();//创建一个存放A到Z,0到9的字符串列表
for (int i = 65; i <= 90; i++)
{
char aa =(char) i;
strList.Add(aa.ToString());//把A到Z放到列表中
}
char[] number=new char[10];//把0到9字符存入字符数组中
for (int i = 48; i <= 57; i++)
{
char aa = (char)i;
strList.Add(aa.ToString());//把A到Z放到列表中
number[i-48]=aa;
}
string resultStr = "";//你要的字符串
for (int i = 0; i < 20; i++)
{
Random random = new Random();
int index = random.Next(strList.Count);
resultStr = resultStr + strList[index];
strList.RemoveAt(index);
}
if (resultStr.IndexOfAny(number) == -1)//判断是否含有数字,没有则重新生成字符串
{
goto loop;//跳到上面
}
这样产生的字符串,字符不会有重复的。而且一定会有两字符和数字的。
我已经调试过了,你看看结果。
我运行的结果是:768543210ZYXWVUTSRQ9
List<string> strList = new List<string>();//创建一个存放A到Z,0到9的字符串列表
for (int i = 65; i <= 90; i++)
{
char aa =(char) i;
strList.Add(aa.ToString());//把A到Z放到列表中
}
char[] number=new char[10];//把0到9字符存入字符数组中
for (int i = 48; i <= 57; i++)
{
char aa = (char)i;
strList.Add(aa.ToString());//把A到Z放到列表中
number[i-48]=aa;
}
string resultStr = "";//你要的字符串
for (int i = 0; i < 20; i++)
{
Random random = new Random();
int index = random.Next(strList.Count);
resultStr = resultStr + strList[index];
strList.RemoveAt(index);
}
if (resultStr.IndexOfAny(number) == -1)//判断是否含有数字,没有则重新生成字符串
{
goto loop;//跳到上面
}
这样产生的字符串,字符不会有重复的。而且一定会有两字符和数字的。
我已经调试过了,你看看结果。
我运行的结果是:768543210ZYXWVUTSRQ9
展开全部
public string CreateCheckCode()
{
char[] CharArray = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
string sCode = "";
Random random = new Random();
for (int i = 0; i < 20; i++)
{
sCode += CharArray[random.Next(CharArray.Length)];
}
return sCode;
}
补充:你定义一个集合(Collection),用于保存两次生成的sCode
{
char[] CharArray = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
string sCode = "";
Random random = new Random();
for (int i = 0; i < 20; i++)
{
sCode += CharArray[random.Next(CharArray.Length)];
}
return sCode;
}
补充:你定义一个集合(Collection),用于保存两次生成的sCode
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private int rep = 0;
private string GenerateCheckCode()
{
string str = string.Empty;
long num2 = DateTime.Now.Ticks + this.rep;
this.rep++;
Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
Random r = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
int n = r.Next(6, 11);
for (int i = 0; i <n; i++)
{
char ch;
int num = random.Next();
if ((num % 2) == 0)
{
ch = (char)(0x30 + ((ushort)(num % 10)));
}
else
{
ch = (char)(0x41 + ((ushort)(num % 0x1a)));
}
str = str + ch.ToString();
}
return str;
}
生成5-10个字符之间的随机字符串。
private string GenerateCheckCode()
{
string str = string.Empty;
long num2 = DateTime.Now.Ticks + this.rep;
this.rep++;
Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
Random r = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
int n = r.Next(6, 11);
for (int i = 0; i <n; i++)
{
char ch;
int num = random.Next();
if ((num % 2) == 0)
{
ch = (char)(0x30 + ((ushort)(num % 10)));
}
else
{
ch = (char)(0x41 + ((ushort)(num % 0x1a)));
}
str = str + ch.ToString();
}
return str;
}
生成5-10个字符之间的随机字符串。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询