C# – 随机生成字符串
在 C# 中,字符串是 Unicode字符序列或字符数组。 Unicode字符的范围是 U+0000 到 U+FFFF。字符串是文本的表示。在本文中,我们将学习如何随机生成字符串和字母数字字符串。因此,我们使用 Random 类来完成这项任务,尽管它会生成整数,但我们可以使用它们来创建随机字符串。 Random 类提供了不同类型的方法来生成随机字符串。随机字符串一般用于验证码验证等。
例子:
Random String: ZDTXZFPYQEOUPGMEIYCEUSK
Random String: PSSR34YB
方法一:使用 Next() 方法
我们可以使用 Next() 方法生成一个随机字符串。此方法接受两个参数最小和最大范围,并在指定的最小和最大范围内返回一个正随机整数。
句法:
public virtual int Next (int mValue, int nValue);
这里,mValue 是生成的随机数的上界,nValue 是返回的随机数的下界。
方法:
1. Create a object of the Random class
2. Randomly choose the size of the string using the Next() method and store in stringlength variable.
3. Repeat the following steps stringlength times using for loop:
- Randomly choose a number between 0 and 25
- Add 65 to the random number and convert it to char using convert.ToChar() method
4. Display the output.
例子:
C#
// C# program to generate random strings
using System;
class GFG{
static void Main()
{
// Creating object of random class
Random rand = new Random();
// Choosing the size of string
// Using Next() string
int stringlen = rand.Next(4, 10);
int randValue;
string str = "";
char letter;
for (int i = 0; i < stringlen; i++)
{
// Generating a random number.
randValue = rand.Next(0, 26);
// Generating random character by converting
// the random number into character.
letter = Convert.ToChar(randValue + 65);
// Appending the letter to string.
str = str + letter;
}
Console.Write("Random String:" + str);
}
}
C#
// C# program to generate random strings
using System;
class GFG{
public static void Main(string[] args)
{
Random res = new Random();
// String of alphabets
String str = "abcdefghijklmnopqrstuvwxyz";
int size = 10;
// Initializing the empty string
String ran = "";
for (int i = 0; i < size; i++)
{
// Selecting a index randomly
int x = res.Next(26);
// Appending the character at the
// index to the random string.
ran = ran + str[x];
}
Console.WriteLine("Random String:" + ran);
}
}
C#
// C# program to generate random alphanumeric strings
using System;
class GFG{
public static void Main(string[] args)
{
Random res = new Random();
// String that contain both alphabets and numbers
String str = "abcdefghijklmnopqrstuvwxyz0123456789";
int size = 8;
// Initializing the empty string
String randomstring = "";
for (int i = 0; i < size; i++)
{
// Selecting a index randomly
int x = res.Next(str.Length);
// Appending the character at the
// index to the random alphanumeric string.
randomstring = randomstring + str[x];
}
Console.WriteLine("Random alphanumeric String:" + randomstring);
}
}
输出:
Random String:UUYXBGA
说明:在上面的例子中,我们将生成一个 0 到 25 之间的随机数,然后将它加到 65 上,就变成了字母表的 ASCII 值。使用 ToChar() 方法将 ASCII 值转换为字符。这整个步骤将使用 for 循环重复多次,并通过附加所有随机生成的字符形成一个字符串。
方法二:
我们也可以使用这种方法生成随机字符串。在这个方法中,我们传递一个包含 26 个字母的字符串。然后从 26 个字母中,我们将随机选择一个字母并将其附加到字符串中,通过重复此操作形成一个随机字符串。
方法:
- Initialize a string with alphabets i.e. str=“abc…….xyz”
- Initialize an empty string and name it as “ran”.
- Choose the size of the string to be generated.
- Now using Next() method generate a random number and select the character at that index in the alphabet string.
- Append that character to randomString.
- Repeat steps 4 and 5 for n time where n is the length of the string.
例子:
C#
// C# program to generate random strings
using System;
class GFG{
public static void Main(string[] args)
{
Random res = new Random();
// String of alphabets
String str = "abcdefghijklmnopqrstuvwxyz";
int size = 10;
// Initializing the empty string
String ran = "";
for (int i = 0; i < size; i++)
{
// Selecting a index randomly
int x = res.Next(26);
// Appending the character at the
// index to the random string.
ran = ran + str[x];
}
Console.WriteLine("Random String:" + ran);
}
}
输出:
Random String:mphhzgvpjr
说明:在这个例子中,我们创建了一个 Random 类的对象。然后我们将 26 个字母存储在一个名为“str”的字符串中。现在我们创建一个名为“size”的整数类型变量,它表示随机生成的字符串中存在的字符总数。现在我们创建一个名为“ran”的空字符串。然后我们创建一个 for 循环,迭代直到“i < size”,在这个 for 循环中我们使用 Next() 方法。该方法生成小于 26 的随机数,因此我们使用这些数字作为位置指示符,从该位置获取字符。所以每次循环迭代我们都会得到一个随机字符。最后,我们将附加这些字符并获得一个随机字符串。
方法 3:生成字母数字字符串
字母数字字符串是那些同时包含字母和数字的字符串。我们可以使用上述方法生成随机字母数字字符串。
方法:
- Initialize a string with both alphabets and numbers i.e. str = “abc…….xyz012….789”
- Initialize an empty string and name it as “randomString”.
- Choose the size of the string to be generated.
- Now using Next() method generate a random number and select the character at that index in the alphanumeric string.
- Append that character to randomString.
- Repeat steps 4 and 5 for n time where n is the length of the string.
例子:
C#
// C# program to generate random alphanumeric strings
using System;
class GFG{
public static void Main(string[] args)
{
Random res = new Random();
// String that contain both alphabets and numbers
String str = "abcdefghijklmnopqrstuvwxyz0123456789";
int size = 8;
// Initializing the empty string
String randomstring = "";
for (int i = 0; i < size; i++)
{
// Selecting a index randomly
int x = res.Next(str.Length);
// Appending the character at the
// index to the random alphanumeric string.
randomstring = randomstring + str[x];
}
Console.WriteLine("Random alphanumeric String:" + randomstring);
}
}
输出:
Random alphanumeric String:v91d2p48
说明:在这个例子中,我们创建了一个 Random 类的对象。然后我们将字母和数字存储在一个名为“str”的字符串中。现在我们创建一个名为“size”的整数类型变量,它表示随机生成的字母数字字符串中存在的字符总数。现在我们创建一个名为“randomstring”的空字符串。然后我们创建一个 for 循环,迭代直到“i < size”,在这个 for 循环中我们使用 Next() 方法。此方法生成小于 str.Length 的随机数,因此我们使用这些数字作为位置指示符来从该位置获取字符。所以每次循环迭代我们都会得到一个随机字符。最后,我们将附加这些字符并获得一个随机的字母数字字符串。