热门标签 | 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方法来验证这部分数字是否符合中国大陆的手机号码格式。该方法内部定义了一个正则表达式,用于匹配符合要求的手机号码格式。


推荐阅读
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社区 版权所有