热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java字符串处理:使用正则表达式验证手机号码

本文介绍了如何利用Java编程语言中的正则表达式来验证字符串中的数字是否符合中国三大运营商(中国电信、中国联通、中国移动)的手机号码格式。文章提供了详细的代码示例和解析。

任务概述

本任务旨在通过Java程序接收一个包含数字和字母的字符串,并判断该字符串中的数字部分是否为中国大陆地区的有效手机号码。根据中国大陆地区的主要电信运营商,手机号码的前几位数字具有特定的模式,具体如下:

  • 中国电信:133、149、153、173、177、180、181、189
  • 中国联通:130、131、132、145、155、156、166、175、176、185、186
  • 中国移动:134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188

代码实现

/*
任务:接收一个特定格式的字符串,判断其中的数字部分是否为有效的手机号码。
字符串格式:数字@字母(例如:34343@sdeff)。
正则表达式策略:手机号码的前三位必须符合上述号段,后八位为任意数字。
*/
import java.util.Scanner;

public class PhoneNumberValidator {
public static void main(String[] args) {
// 接收用户输入的字符串
Scanner scanner = new Scanner(System.in);
String inputStr = scanner.nextLine();

// 使用'@'分割字符串
String[] parts = inputStr.split("@");
String numberPart = parts[0];

// 验证数字部分是否为有效的手机号码
if (isValidPhoneNumber(numberPart)) {
System.out.println(numberPart + " 是有效的手机号码");
} else {
System.out.println(numberPart + " 不是有效的手机号码");
}
}

private static boolean isValidPhoneNumber(String phoneNumber) {
// 定义正则表达式
String regex = "^(13[0-9]|14[579]|15[0-35-9]|166|17[35-8]|18[0-9])\d{8}$";
return phoneNumber.matches(regex);
}
}

以上代码首先通过标准输入接收一个字符串,然后使用'@'字符将字符串分为两部分,其中第一部分为需要验证的数字。接下来,通过调用isValidPhoneNumber方法来验证这部分数字是否符合中国大陆的手机号码格式。该方法内部定义了一个正则表达式,用于匹配符合要求的手机号码格式。


推荐阅读
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • Java实现实时更新的日期与时间显示
    本文介绍了如何使用Java编程语言来创建一个能够实时更新显示系统当前日期和时间的小程序。通过使用Swing库中的组件和定时器功能,可以实现界面友好且功能强大的时间显示应用。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文介绍了一个将 Java 实体对象转换为 Map 的工具类,通过反射机制获取实体类的字段并将其值映射到 Map 中,适用于需要将对象数据结构化处理的场景。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • 使用Java计算两个日期之间的月份数
    本文详细介绍了利用Java编程语言计算两个指定日期之间月份数的方法。文章通过实例代码讲解了如何使用Joda-Time库来简化日期处理过程,旨在为开发者提供一个高效且易于理解的解决方案。 ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • Java中提取字符串的最后一部分
    本文介绍了如何使用Java中的substring()和split()方法来提取字符串的最后一部分,特别是在处理包含特殊字符的路径时的方法与技巧。 ... [详细]
  • 设计一个算法,用于计算给定字符串中出现的不同ASCII字符数量。该任务将重点考察字符串处理、集合操作以及基础的输入输出技术。 ... [详细]
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • 个人博客:打开链接依赖倒置原则定义依赖倒置原则(DependenceInversionPrinciple,DIP)定义如下:Highlevelmo ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文详细介绍了 JavaScript 中 Split 方法的使用方式和一些实用技巧。通过示例,我们将探讨如何利用 Split 方法有效地分割字符串,并获取所需的数据。 ... [详细]
author-avatar
这个世界我看不懂2011_595
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有