用【Java】代码来创建一个正则表达式:【使用正则表达式模拟验证手机号的过程,按照以下要求实现相关代码 提示用户在控制台输入手机号,用一个字符串对其进行保存判断该手机号位数是否是11位判断该手机号,是否都是数字 判断改手机号最后3为数字如果是相同数字则认为是靓号。】
时间: 2024-12-13 21:28:03 浏览: 15
在Java中,我们可以使用`java.util.regex`包下的正则表达式API来实现这个功能。首先,我们需要定义一个方法来接受用户的输入并使用正则表达式进行验证。以下是一个简单的示例:
```java
import java.util.Scanner;
import java.util.regex.Pattern;
public class MobileValidator {
private static final String PHONE_NUMBER_PATTERN = "^\\d{11}$"; // 匹配11位数字的正则
private static final String BEAUTIFUL_PHONE_PATTERN = "^\\d{11}(\\d{3})\\1$"; // 匹配末三位相同数字的靓号
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入手机号码:");
String input = scanner.nextLine();
// 判断位数是否为11位
if (isValidPhoneNumber(input)) {
System.out.println("手机号位数正确,开始验证靓号...");
// 判断靓号条件
if (isBeautifulNumber(input)) {
System.out.println("这是一个靓号!");
} else {
System.out.println("这不是靓号,因为末三位数字不同或不是连续的三位数字");
}
} else {
System.out.println("手机号码错误,请输入11位数字!");
}
scanner.close();
}
/**
* 使用正则表达式检查输入的字符串是否为11位数字
*/
private static boolean isValidPhoneNumber(String phoneNumber) {
Pattern pattern = Pattern.compile(PHONE_NUMBER_PATTERN);
return pattern.matcher(phoneNumber).matches();
}
/**
* 检查输入的字符串是否符合靓号规则,即末三位数字相同
*/
private static boolean isBeautifulNumber(String phoneNumber) {
Pattern pattern = Pattern.compile(BEAUTIFUL_PHONE_PATTERN);
return pattern.matcher(phoneNumber).matches();
}
}
阅读全文