[Asp.net]Tạo một chuỗi ngẫu nhiên với .net

Để tạo một chuỗi ngẫu nhiên từ các ký tự A-Za-z0-9 với chiều dài tùy chọn chúng ta sẽ viết 1 Class RandomStrings như sau:

class RandomStrings
{
//our default string size
private const int CONST_MaxStringLenght = 10;

//our default character string set
private const string CONST_AllowedCharacterLiterals
= “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”;

//our randomizer
Random randomNumber = new Random();

///

/// Generate a random string using the default options
///

/// the random string
public string GenerateRandomString()
{
return GenerateRandomString(CONST_MaxStringLenght);
}

///

/// Create a random string based on a specified lenght
///

/// the lenght of the desired lenght of the random string
/// the randomized string
public string GenerateRandomString(int lenght)
{
return GenerateRandomString(lenght, CreateRandomStringSet());
}

///

/// Creates a random string based on a specific lenght and character set
///

/// the lenght of the desired lenght of the random string
/// character set to use
/// defines whether the source set should be scrambled
/// the random string
public string GenerateRandomString(int lenght, string charsToUse, bool randomizeSourceSet)
{
string randomString = String.Empty;

if (randomizeSourceSet) {
//scramble and jumble it
randomString = GenerateRandomString(lenght, CreateRandomStringSet(charsToUse));
}
else {
//use the default charset
randomString = GenerateRandomString(lenght, charsToUse);
}

return randomString;
}

///

/// Creates a random string based on a specific lenght and character set
///

/// the lenght of the desired lenght of the random string
/// character set to use
/// the random string
public string GenerateRandomString(int lenght, string charsToUse)
{
//Create a new StringBuilder that would hold the random string.
StringBuilder randomString = new StringBuilder();

//Create a variable to hold the generated charater.
char appendedChar;

//Create a loop that would iterate from 0 to the specified value of intLenghtOfString
for (int i = 0; i <= lenght; ++i)
{
int characterIndex = Convert.ToInt32(randomNumber.Next(i, charsToUse.Length – i));
//Generate the char and assign it to appendedChar
appendedChar = charsToUse[characterIndex];
//Append appendedChar to randomString
randomString.Append(appendedChar);
}
//Convert randomString to String and return the result.
return randomString.ToString();
}

///

/// Returns a random set of characters based on the default literal set
///

/// the random string
private string CreateRandomStringSet()
{
//just use the default character set
return CreateRandomStringSet(CONST_AllowedCharacterLiterals);
}

///

/// A function that returns a new set of characters based on an input set
///

/// the source set
/// the new collection of characters
private string CreateRandomStringSet(string allowedCharacters)
{
string randomizedString = String.Empty;

//get a random string set size
int randomSetLenght = allowedCharacters.Length * randomNumber.Next(1, CONST_MaxStringLenght);

//while lenght of the random set is not the same as the source string lenght
while (randomizedString.Length != randomSetLenght)
{
//add a new character
randomizedString += GetRandomCharFromString(allowedCharacters);
}

//return our random string
return randomizedString;
}

///

/// Gets a character from the the input string
///

/// source string
/// a random character
private char GetRandomCharFromString(string allowedCharacters)
{
return allowedCharacters[randomNumber.Next(allowedCharacters.Length – 1)];
}
}


Sử dụng
static void Main(string[] args)
{
RandomStrings r = new RandomStrings();

Console.WriteLine(r.GenerateRandomString());
Console.WriteLine(r.GenerateRandomString(10));
Console.WriteLine(r.GenerateRandomString(10, "qwerttyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM"));
Console.WriteLine(r.GenerateRandomString(10, "[]{}!@#$%^&*()qwerttyuioplkjhgfdsazxcvbnm1234567890", true));
Console.WriteLine(r.GenerateRandomString(10, "qwerttyuioplkjhgfdsazxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM", false));

Console.ReadLine();
}

sưu tầm

Về tieuyeuit
Lập trình viên Asp.net Tôi chia sẻ một,bạn chia sẻ một và chúng ta có rất nhiều!

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s