用【Java】代码来创建一个正则表达式:模拟验证手机号的过程,用户在控制台输入手机号,用一个字符串对其进行保存判断该手机号位数是否是11位判断该手机号,判断是否都是数字 判断改手机号最后3为数字如果是相同数字则认为是靓号。
时间: 2024-12-14 16:17:44 浏览: 14
在Java中,你可以使用`java.util.regex.Pattern`和`java.util.regex.Matcher`类来创建和匹配正则表达式。下面是一个简单的示例,它会提示用户输入手机号码,并通过正则表达式验证其格式、长度以及靓号条件:
```java
import java.util.Scanner;
import java.util.regex.*;
public class PhoneNumberValidator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入手机号码:");
// 正则表达式模式,用于验证11位数字的手机号并检查最后三位是否相同
String regex = "^(\\d{11})$|^(\\d{11})[0-9]{2}(?!\\1)[0-9]$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(scanner.nextLine());
if (matcher.matches()) {
int lastThreeDigits = Integer.parseInt(matcher.group(2).substring(9, 11));
boolean isLuckyNumber = lastThreeDigits % 10 == 0; // 假设后三位都是0、1、2、3、4、5、6、7、8、9中的一个,则算作靓号
if (matcher.groupCount() > 1 && isLuckyNumber) {
System.out.println("这是一个11位的手机号码,并且最后一个三位是重复的靓号!");
} else if (isLuckyNumber) {
System.out.println("这是一个11位的手机号码,但不是靓号,因为最后三个数字相同但不是重复的0-9之间的一个数字");
} else {
System.out.println("这是一个11位的普通手机号码");
}
} else {
System.out.println("手机号码格式不正确!请输入11位数字的手机号码");
}
scanner.close();
}
}
阅读全文