我现在使用dlang语言怎么生成指定长度随机字符串要求只能大小写字母和数字以及下划线_无其他特殊字符有多种方式的话每种方式给出完整代码
方式一:
import std.random : uniform;
import std.array : array;
import std.ascii : isAlphaNumeric, isAlpha, isDigit;
string generateRandomString(int length)
{
string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
string result = "";
foreach (i; 0..length)
{
result ~= chars[uniform(0, chars.length)];
}
return result;
}
void main()
{
string randomString = generateRandomString(10);
assert(randomString.length == 10);
assert(array(randomString).all!(c => isAlphaNumeric(c) || c == '_'));
assert(array(randomString).any!(c => isAlpha(c)));
assert(array(randomString).any!(c => isDigit(c)));
}
方式二:
import std.random : uniform;
import std.array : array;
import std.ascii : isAlphaNumeric, isAlpha, isDigit;
string generateRandomString(int length)
{
string result = "";
foreach (i; 0..length)
{
int randomNumber = uniform(0, 62);
if (randomNumber < 26)
{
result ~= cast(char)('a' + randomNumber);
}
else if (randomNumber < 52)
{
result ~= cast(char)('A' + randomNumber - 26);
}
else if (randomNumber < 62)
{
result ~= cast(char)('0' + randomNumber - 52);
}
else
{
result ~= '_';
}
}
return result;
}
void main()
{
string randomString = generateRandomString(10);
assert(randomString.length == 10);
assert(array(randomString).all!(c => isAlphaNumeric(c) || c == '_'));
assert(array(randomString).any!(c => isAlpha(c)));
assert(array(randomString).any!(c => isDigit(c)));
}
``
原文地址: http://www.cveoy.top/t/topic/fmki 著作权归作者所有。请勿转载和采集!