C#中如何产生随机字符串

如何例用C#产生A到Z数字0到9两种组和之间的随机字符串要求是第次不能重复而且每次都要有数字和字母两者字数是20位我想要的是两次产生或是多次产生的串列没有相同的而不是单次... 如何例用C#产生 A到Z 数字0到9 两种组和之间的随机字符串 要求是
第次不能重复 而且每次都要有 数字和字母两者 字数是 20位
我想要的是 两次产生 或是多次产生的串列 没有相同的 而不是单次里面没有重复的字符 但是一定要是数字和字母都有的 这样我想你搞起来会更简单吧 呵呵
展开
 我来答
快乐程序员
推荐于2016-01-11 · TA获得超过1063个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:0
展开全部
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
bmlvy2006
2007-10-13 · TA获得超过204个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:158万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ben
2015-06-18 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
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个字符之间的随机字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式