[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

Advertisements

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