在现代软件开发中,随机生成手机号码是一项常见的需求,无论是用于测试、数据填充还是其他应用场景。本文将介绍如何使用 C# 编写一个简单而有效的方法来随机生成符合中国大陆规范的手机号码。
private string [] telStarts = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153,180,181,182,183,185,186,176,187,188,189,177,178" .Split(',' );
/// <summary>
/// 随机生成电话号码
/// </summary>
/// <returns></returns>
public string getRandomTel()
{
Random ran = new Random();
int index = ran.Next(0, telStarts.Length - 1);
string first = telStarts[index];
string second = (ran.Next(100, 888) + 10000).ToString().Substring(1);
string thrid = (ran.Next(1, 9100) + 10000).ToString().Substring(1);
return first + second + thrid;
}
代码解析
- 可用的手机号码段:
telStarts
数组包含了当前中国大陆主要的手机号码段,每三个数字代表一个运营商和号段的组合,例如134
、135
等。这些前缀确保生成的号码符合运营商的分配规则。
- 生成过程:
- 随机选择前缀:使用
Random
类从telStarts
数组中随机选择一个号码前缀,保证了号码前3位的合法性和多样性。 - 生成中间四位:
ran.Next(100, 888) + 10000
生成一个五位数,通过Substring(1)
获取后四位。为了进一步提高号码的随机性和有效性,可以调整生成范围,避免生成不常用的数字组合。 - 生成末四位:类似地,
ran.Next(1, 9100) + 10000
生成一个五位数,通过Substring(1)
获取后四位。 - 拼接号码:将前3位、中间4位和末4位拼接起来,形成一个完整的11位手机号码。
- 随机选择前缀:使用