Java使用正则表达式模拟验证手机号的过程,按照以下要求实现相关代码 提示用户在控制台输入手机号,用一个字符串对其进行保存,判断该手机号位数是否是11位判断该手机号,判断是否都是数字 判断改手机号最后3为数字如果是相同数字则认为是靓号。
时间: 2024-12-14 22:21:31 浏览: 16
在Java中,你可以使用`Scanner`类从控制台获取用户的输入,然后利用正则表达式对手机号进行验证。下面是一个简单的示例代码:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入手机号码:");
// 正则表达式匹配规则,检查11位数字且最后三位不全是相同的数字
String regex = "^\\d{11}(?!\\d{3}\\.\\d{3})$";
Pattern pattern = Pattern.compile(regex);
// 获取用户输入
String phoneNumber = scanner.nextLine();
// 使用Pattern实例化Matcher进行匹配
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
System.out.println("手机号码有效,是11位并且不是连续三位相同的数字");
} else {
System.out.println("手机号码无效,可能是长度不对或者包含非数字字符");
}
// 判断是否靓号(这里简单假设连续三位相同算作靓号,实际情况可能有更复杂的判定标准)
boolean isLucky = !phoneNumber.endsWith("111") && !phoneNumber.endsWith("222") && !phoneNumber.endsWith("333");
if (isLucky) {
System.out.println("手机号码是靓号");
} else {
System.out.println("手机号码不是靓号");
}
scanner.close();
}
}
```
在这个例子中,我们首先创建了一个正则表达式模式来检查手机号是否满足11位且最后一组连续三位数字不相同的条件。然后通过`matches()`方法进行验证。
关于靓号的部分,这个例子仅作为一个简化的示例,实际判断靓号可能需要考虑更多因素,比如特定的区间段或者随机性等。
阅读全文