📜  C# – 随机生成字符串

📅  最后修改于: 2022-05-13 01:54:28.340000             🧑  作者: Mango

C# – 随机生成字符串

在 C# 中,字符串是 Unicode字符序列或字符数组。 Unicode字符的范围是 U+0000 到 U+FFFF。字符串是文本的表示。在本文中,我们将学习如何随机生成字符串和字母数字字符串。因此,我们使用 Random 类来完成这项任务,尽管它会生成整数,但我们可以使用它们来创建随机字符串。 Random 类提供了不同类型的方法来生成随机字符串。随机字符串一般用于验证码验证等。

例子:

Random String: ZDTXZFPYQEOUPGMEIYCEUSK

Random String: PSSR34YB

方法一:使用 Next() 方法

我们可以使用 Next() 方法生成一个随机字符串。此方法接受两个参数最小和最大范围,并在指定的最小和最大范围内返回一个正随机整数。

句法:

这里,mValue 是生成的随机数的上界,nValue 是返回的随机数的下界。

方法:

例子:

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 个字母中,我们将随机选择一个字母并将其附加到字符串中,通过重复此操作形成一个随机字符串。

方法:

例子:

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:生成字母数字字符串

字母数字字符串是那些同时包含字母和数字的字符串。我们可以使用上述方法生成随机字母数字字符串。

方法:

例子:

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 的随机数,因此我们使用这些数字作为位置指示符来从该位置获取字符。所以每次循环迭代我们都会得到一个随机字符。最后,我们将附加这些字符并获得一个随机的字母数字字符串。