View Full Version : ایجاد رشته Random
jaykob
پنج شنبه 28 بهمن 1389, 21:06 عصر
سلام
من با استفاده از کلاس Random یک عدد تصادفی ایجاد می کنم اما حالا می خوام یک رشته اتفاقی که ترکیبی از حروف و عدد و کاراکتر ها باشه بسازم . به چه صورت می تونم این کار رو انجام بدم ؟
با تشکر
sinashahab
پنج شنبه 28 بهمن 1389, 21:52 عصر
یه راه ساده اینه که یه کلاس بنویسی و بزاری از 1 تا 50 رو بگیره و یه کاراکتر پس بده .
مثلا اگه 26 گرفت "خ" پس بده و ......
Salar Ashgi
پنج شنبه 28 بهمن 1389, 22:20 عصر
مثال اول :
string rnd = Guid.NewGuid().ToString();
MessageBox.Show(rnd);
66494
مثال دوم :
با یک تابع دلخواهی مثل زیر :
string Random_Str(int len)
{
Random rnd = new Random();
string res="";
for(int i=1;i<=len;i++)
{
if(i%3==0)
res+=((char)(rnd.Next(48,57))).ToString();
else if(i%3==1)
res+=((char)(rnd.Next(65,90))).ToString();
else if(i%3==2)
res+=((char)(rnd.Next(97,122))).ToString();
}
return res;
}
نتیجه :
string rnd = Random_Str(10);
MessageBox.Show(rnd);
66493
البته مطمئنا روش های دیگری نیز وجود دارند و اینها بعنوان مثال نمونه بودند .
موفق باشید ./
jaykob
پنج شنبه 28 بهمن 1389, 23:43 عصر
مثال اول :
string rnd = Guid.NewGuid().ToString();
MessageBox.Show(rnd);
66494
مثال دوم :
با یک تابع دلخواهی مثل زیر :
string Random_Str(int len)
{
Random rnd = new Random();
string res="";
for(int i=1;i<=len;i++)
{
if(i%3==0)
res+=((char)(rnd.Next(48,57))).ToString();
else if(i%3==1)
res+=((char)(rnd.Next(65,90))).ToString();
else if(i%3==2)
res+=((char)(rnd.Next(97,122))).ToString();
}
return res;
}
نتیجه :
string rnd = Random_Str(10);
MessageBox.Show(rnd);
66493
البته مطمئنا روش های دیگری نیز وجود دارند و اینها بعنوان مثال نمونه بودند .
موفق باشید ./
ممنون از جوابتون اگر بخواهیم کاراکتر های مثل %$#^%$@ و امثال ابن کاراکتر ها رو هم اضافه کنیم به چه شکل می شه ؟
با تشکر
mmd2009
جمعه 29 بهمن 1389, 13:37 عصر
با سلام.
اینم یک مثال از من.
فکر کنم روشی بهتری باشه :
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(RandomString(15));
}
private readonly Random rnd = new Random();
private const string CharForSting = "ABCDEFGHIJKLMNOPQRSTUVWXYZ@#$%^&*()_+123456789";
private string RandomString(int intsize)
{
char[] str = new char[intsize];
for (int i = 0; i < intsize; i++)
{
str[i] = CharForSting[rnd.Next(CharForSting.Length)];
}
return new string(str);
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.