java使用正则表达式模拟验证手机号的过程,按照以下要求实现相关代码 提示用户输入手机号,用一个字符串对其进行保存判断该手机号位数是否是11位判断该手机号,是否都是数字 判断改手机号最后3为数字如果是相同数字则认为是好号。
时间: 2024-12-13 13:24:01 浏览: 17
在Java中,你可以使用`java.util.regex`包下的正则表达式来验证手机号码。首先,我们创建一个简单的函数,用于获取用户的输入并使用正则表达式检查其格式。以下是满足你提到的要求的一个示例:
```java
import java.util.Scanner;
import java.util.regex.Pattern;
public class PhoneNumberValidator {
private static final String PHONE_NUMBER_PATTERN = "^\\d{11}$"; // 正则表达式匹配11位纯数字的手机号
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入手机号码:");
// 获取用户输入
String input = scanner.nextLine();
// 验证手机号格式
if (isValidPhoneNumber(input)) {
System.out.println("手机号码有效");
// 判断最后三位是否全为相同数字
if (isLastThreeDigitsSame(input)) {
System.out.println("这是一个好号码(最后三位相同)");
} else {
System.out.println("不是一个好号码(最后三位不相同)");
}
} else {
System.out.println("手机号码格式错误");
}
scanner.close();
}
/**
* 检查手机号是否符合11位数字的标准
*/
private static boolean isValidPhoneNumber(String phoneNumber) {
Pattern pattern = Pattern.compile(PHONE_NUMBER_PATTERN);
return pattern.matcher(phoneNumber).matches();
}
/**
* 检查手机号的最后三位数字是否相同
*/
private static boolean isLastThreeDigitsSame(String phoneNumber) {
int lastThreeDigits = phoneNumber.charAt(phoneNumber.length() - 1)
+ phoneNumber.charAt(phoneNumber.length() - 2)
+ phoneNumber.charAt(phoneNumber.length() - 3);
int digit = Character.getNumericValue(lastThreeDigits);
return phoneNumber.substring(phoneNumber.length() - 3).equals(String.valueOf(digit));
}
}
```
在这个例子中,`isValidPhoneNumber`函数会校验输入的手机号是否是11位的数字,而`isLastThreeDigitsSame`函数会检查最后三位是否相同。
阅读全文