Java生成手机号码

您所在的位置:网站首页 手机号码生成二维码自动拨打电话 Java生成手机号码

Java生成手机号码

2024-07-14 10:02| 来源: 网络整理| 查看: 265

文章目录 前言一、实现代码1. 运营商枚举2. 手机号码工具类 二、运行结果总结

前言

在项目开发中,遇到了一个需求就是随机生成电话号码(中国地区),将实现过程进行记录。

提示:以下是本篇文章正文内容,下面案例可供参考

一、实现代码

在实际项目中我为了便于分层维护,因此代码中会出现枚举,枚举类对当前工具类的核心代码无影响,读者可以根据自己的需求来决定是否使用枚举。同时为了提高代码的简洁性与可读性,在项目我也引入了Lombok工具包。

1. 运营商枚举 import lombok.AllArgsConstructor; import lombok.Getter; /** * 运营商枚举 * * @author zhangrongkang * @since 2023/4/2 */ @Getter @AllArgsConstructor public enum OperatorEnum { /** * 中国移动 */ CHINA_MOBILE(0, "中国移动"), /** * 中国联通 */ CHINA_UNICOM(1, "中国联通"), /** * 中国电信 */ CHINA_TELECOM(2, "中国电信"); /** * 运营商识别码 */ private final Integer code; /** * 运营商名称 */ private final String name; /** * 通过运营商识别码获取运营商名称 * * @param code 运营商识别码 * @return 运营商名称 */ public static String getOperateNameByCode(Integer code) { // 循环遍历所有枚举 for (OperatorEnum value : OperatorEnum.values()) { // 返回当前运营商名称 if (value.code.equals(code)) { return value.name; } } return null; } } 2. 手机号码工具类 import com.zrkizzy.seckill.enums.OperatorEnum; import java.util.Random; /** * 随机生成电话号码工具类 * * @author zhangrongkang * @since 2023/4/2 */ public class PhoneNumberUtil { /** * 中国移动 */ private static final String[] CHINA_MOBILE = { "134", "135", "136", "137", "138", "139", "150", "151", "152", "157", "158", "159", "182", "183", "184", "187", "188", "178", "147", "172", "198" }; /** * 中国联通 */ private static final String[] CHINA_UNICOM = {"130", "131", "132", "145", "155", "156", "166", "171", "175", "176", "185", "186", "166"}; /** * 中国电信 */ private static final String[] CHINA_TELECOM = {"133", "149", "153", "173", "177", "180", "181", "189", "199"}; /** * 生成手机号方法 * * @param operator 运营商识别码 */ public static String createPhoneNumber(int operator) { // 定义随机数对象 Random random = new Random(); // 定义StringBuilder对象用于存储生成的手机号 StringBuilder builder = new StringBuilder(); // 手机号前三位 String mobilePrefix = null; // 随机生成指定运营商中的手机前三位 mobilePrefix = switch (operator) { // 中国移动 case 0 -> CHINA_MOBILE[random.nextInt(CHINA_MOBILE.length)]; // 中国联通 case 1 -> CHINA_UNICOM[random.nextInt(CHINA_UNICOM.length)]; // 中国电信 case 2 -> CHINA_TELECOM[random.nextInt(CHINA_TELECOM.length)]; default -> "运营商错误"; }; // 拼接手机号前三位 builder.append(mobilePrefix); // 定义辅助变量用于手机号后八位的生成 int temp; // 生成手机号后8位 for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3