如何在 c# 中生成没有重复(字符)的随机 26 长度字符串
本文关键字:字符 随机 字符串 | 更新日期: 2024-10-31 11:08:22
Random rnd = new Random();
string[] coupon = new string[26];
for (int i = 0; i < coupon.Length; i++)
{
coupon[i] = GenerateCoupon(26, rnd);
}
textBox1 .Text=(String.Join(Environment.NewLine, coupon));
*****功能***********''
public static string GenerateCoupon(int length, Random random)
{
string characters = "abcdefghijklmnopqrstuvwxyz";
StringBuilder result = new StringBuilder(length);
{
result.Append(characters[random.Next(characters.Length)]);
return result.ToString();
}
代码生成的字符串:
Kheeuasampxqxmoohcrufznugp
vrlncvbftinynhdufjdikacjsi
vblltkxeeapymbprtgaiojqkte
qyfvpcvtazuiodbidcfgwcssgw
ijtlkbrpuyzilndsaqxlrxhggo
Emhngmostlapotqziciursddcc
vvflcnewwehgsntstrskbduroe
但是我需要一个代码来生成具有 26 个字符长度且没有重复字符的字符串:
abcdefghijklmnopqrstuvwxyz
Zyxwvutsrqponmlkjihgfedcba
mnbvcxzasdfghjklpoiuytrewq
qazwsxedcrfvtgbyhnujmikolp
Bhuijnmkoplqazxswedcvfrtgb
你可以使用Fisher-Yates洗牌,或者简单地使用
Random rnd = new Random();
var newstr = String.Concat("abcdefghijklmnopqrstuvwxyz".OrderBy(x => rnd.Next()));
看看一些随机算法并将其应用于您的字符集。
你可以
只有一串a-z
。例如:"abcdefghijklmnopqrstuvwxyz"。
之后,根据每个字母的索引随机洗牌字符串。