C#随机字符串
我想要一个C#的能产生自定义长度,自定义个数,不重复的,程序源码,不能出现特殊字符,只能是英文大小写组合,输出格式为,今天日期YYMMDD+6位或其它位数的英文字母组合,...
我想要一个C#的能产生自定义长度,自定义个数,不重复的,程序源码,不能出现特殊字符 ,只能是英文大小写组合,输出格式为,今天日期YYMMDD+6位或其它位数的英文字母组合,我想要输出1000个,然后就能输出一千个,谢谢各位大虾了
展开
5个回答
2013-08-20
展开全部
class Program
{
public static char[] Chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'R', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
static void Main(string[] args)
{
Console.Write("请输入要生成随机字符串中的英文字符长度:");
int length = int.Parse(Console.ReadLine());
Console.Write("请输入要生成随机字符串的个数:");
int count = int.Parse(Console.ReadLine());
Console.Write("请输入分隔符:");
string separator = (string)Console.ReadLine();
Console.WriteLine(GetRandomString(length, count, separator));
}
/// <summary>
/// 获取随机字符串
/// </summary>
/// <param name="length">随机字符串中英文字符个数</param>
/// <param name="count">需要获取的个数</param>
/// <param name="separator">分隔符</param>
/// <returns></returns>
static string GetRandomString(int length, int count, string separator)
{
StringBuilder sb = new StringBuilder();
Random rd = new Random();
string yymmdd = DateTime.Now.ToString("yyMMdd");
for (int i = 0; i < count; i++)
{
sb.Append(yymmdd);
for (int j = 0; j < length; j++)
{
sb.Append(Chars[rd.Next(0, Chars.Length)]);
}
if (i < count - 1)
{
sb.Append(separator);
}
}
return sb.ToString();
}
}
{
public static char[] Chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'R', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
static void Main(string[] args)
{
Console.Write("请输入要生成随机字符串中的英文字符长度:");
int length = int.Parse(Console.ReadLine());
Console.Write("请输入要生成随机字符串的个数:");
int count = int.Parse(Console.ReadLine());
Console.Write("请输入分隔符:");
string separator = (string)Console.ReadLine();
Console.WriteLine(GetRandomString(length, count, separator));
}
/// <summary>
/// 获取随机字符串
/// </summary>
/// <param name="length">随机字符串中英文字符个数</param>
/// <param name="count">需要获取的个数</param>
/// <param name="separator">分隔符</param>
/// <returns></returns>
static string GetRandomString(int length, int count, string separator)
{
StringBuilder sb = new StringBuilder();
Random rd = new Random();
string yymmdd = DateTime.Now.ToString("yyMMdd");
for (int i = 0; i < count; i++)
{
sb.Append(yymmdd);
for (int j = 0; j < length; j++)
{
sb.Append(Chars[rd.Next(0, Chars.Length)]);
}
if (i < count - 1)
{
sb.Append(separator);
}
}
return sb.ToString();
}
}
2013-08-20
展开全部
public class RandomX
{
public string GetRandom()
{
Random r=new Random((int)DateTime.Now.Ticks);
string str="";
for(int i=0;i<6;i++)
{
int n=r.Next(strList.Length);
str+=strList[n];
}
return str;
}
string[] strList = { "A","B"...."Z","a","b"..."z"};//省略了 自己写满
} 想要1000个就重复循环1000次GetRandom()
{
public string GetRandom()
{
Random r=new Random((int)DateTime.Now.Ticks);
string str="";
for(int i=0;i<6;i++)
{
int n=r.Next(strList.Length);
str+=strList[n];
}
return str;
}
string[] strList = { "A","B"...."Z","a","b"..."z"};//省略了 自己写满
} 想要1000个就重复循环1000次GetRandom()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-20
展开全部
晕了 这是我将原来的改写出来的,看看符合你的需求吗/// <summary>
/// 生成随机纯字母随机数
/// </summary>
/// <param name="Length">生成长度</param>
/// <param name="IsRepeat">是否允许重复</param>
/// <returns></returns>
public static string Str_char(int Length, bool IsRepeat)
{
char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
string result = "";
int n = Pattern.Length;
System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));
for (int i = 0; i < Length; i++)
{
Repeat://此处用到goto语句,不明白可以到百度上查一下
int rnd = random.Next(0, n);
if (!IsRepeat && Length <= Pattern.Length)//如果不允许重复,并且生成随机字符长度大于 元数据长度 才可以不重复~真绕口
{
if (result.IndexOf(Pattern[rnd]) != -1)
goto Repeat;//返回到指定goto标记处,此方法尽量少用
}
result += Pattern[rnd];
}
return result;
}
/// 生成随机纯字母随机数
/// </summary>
/// <param name="Length">生成长度</param>
/// <param name="IsRepeat">是否允许重复</param>
/// <returns></returns>
public static string Str_char(int Length, bool IsRepeat)
{
char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
string result = "";
int n = Pattern.Length;
System.Random random = new Random(~unchecked((int)DateTime.Now.Ticks));
for (int i = 0; i < Length; i++)
{
Repeat://此处用到goto语句,不明白可以到百度上查一下
int rnd = random.Next(0, n);
if (!IsRepeat && Length <= Pattern.Length)//如果不允许重复,并且生成随机字符长度大于 元数据长度 才可以不重复~真绕口
{
if (result.IndexOf(Pattern[rnd]) != -1)
goto Repeat;//返回到指定goto标记处,此方法尽量少用
}
result += Pattern[rnd];
}
return result;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-20
展开全部
自定义个数,不重复的,我想要输出1000个 ??? 1k个不同的随机字符。你的问题很有创意 难怪没人回答你的问题。因为你的问题无解。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-20
展开全部
必须用数据库才能简单点,首先写几十万个不同的进去 然后随即查询出其中1000个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询