C# 随机数生成与随机字符串创建
阅读:52
点赞:0
本文介绍了如何在 C# 中使用 Random
类生成随机数和随机字符串。Random
类可以生成不同类型的随机数据,包括字符串。在这个示例中,我们将学习如何创建随机数、随机字符串以及结合两者生成随机密码。
一、随机数生成
1.1 随机数生成器
Random
类提供了生成随机数的功能。它有两种构造函数形式:无参数构造函数和带种子值的构造函数。Random
类提供了以下方法:
-
Random.Next()
:返回一个随机整数。 -
Random.NextBytes()
:返回一个填充了随机字节的字节数组。 -
Random.NextDouble()
:返回一个介于 0.0 和 1.0 之间的随机浮点数。
Random.Next()
方法有三个重载形式,允许设置随机数的最小值和最大值。
1.2 示例代码
以下代码展示了如何生成一个随机数:
int num = random.Next(); // 生成一个随机整数
以下代码生成一个小于 1000 的随机数:
int num = random.Next(1000); // 生成一个小于 1000 的随机整数
以下代码生成一个在指定范围内的随机数:
// 实例化随机数生成器
private readonly Random _random = new Random();
// 生成指定范围内的随机数
public int RandomNumber(int min, int max)
{
return _random.Next(min, max); // 生成在 min 和 max 范围内的随机整数
}
二、随机字符串生成
2.1 生成随机字符串
可以创建一个方法生成指定长度的随机字符串。以下代码演示如何生成一个随机字符串:
// 生成指定长度的随机字符串
public string RandomString(int size, bool lowerCase = false)
{
var builder = new StringBuilder(size); // 创建一个 StringBuilder 实例来构建字符串
// Unicode/ASCII 字符分为两个区块
// (字符 65–90 / 97–122):
// 第一个区块包含大写字母,第二个区块包含小写字母
char offset = lowerCase ? 'a' : 'A'; // 根据需要选择字母的起始字符
const int lettersOffset = 26; // A-Z 或 a-z: 长度为 26
for (var i = 0; i < size; i++)
{
var @char = (char)_random.Next(offset, offset + lettersOffset); // 生成随机字符
builder.Append(@char); // 将字符追加到 StringBuilder 实例中
}
return lowerCase ? builder.ToString().ToLower() : builder.ToString(); // 根据需要返回小写或大写字符串
}
2.2 示例代码
以下代码生成一个长度为 10 的随机字符串:
var randomString = generator.RandomString(10); // 生成一个长度为 10 的随机字符串
三、生成随机密码
3.1 随机密码生成
以下代码生成一个随机密码,密码由 4 个小写字母、4 个数字和 2 个大写字母组成:
// 生成随机密码
public string RandomPassword()
{
var passwordBuilder = new StringBuilder(); // 创建一个 StringBuilder 实例来构建密码
// 4 个小写字母
passwordBuilder.Append(RandomString(4, true)); // 生成 4 个小写字母
// 4 个介于 1000 和 9999 之间的数字
passwordBuilder.Append(RandomNumber(1000, 9999)); // 生成 4 个数字
// 2 个大写字母
passwordBuilder.Append(RandomString(2)); // 生成 2 个大写字母
return passwordBuilder.ToString(); // 返回生成的密码
}
3.2 示例代码
以下代码演示如何生成一个随机密码并打印出来:
var randomPassword = generator.RandomPassword(); // 生成随机密码
Console.WriteLine($"Random password is {randomPassword}"); // 打印随机密码
四、总结
本文介绍了如何在 C# 中使用 Random
类生成随机数和随机字符串,并展示了如何结合这些方法生成随机密码。通过示例代码,你可以在实际开发中应用这些技术来满足不同的需求。