Java判断是手机号还是固话
1. 流程概述
在Java中,判断一个字符串是手机号还是固话可以通过正则表达式来实现。整个流程如下所示:
erDiagram
PhoneNumber ||--|{ JudgePhoneNumber
PhoneNumber ||--|{ JudgeFixedPhone
JudgePhoneNumber ||--|{ RegExp
JudgeFixedPhone ||--|{ RegExp
2. 详细步骤及代码实现
2.1 步骤一:引入正则表达式
首先,我们需要引入正则表达式。正则表达式可以用来匹配手机号和固话的格式。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
2.2 步骤二:判断是否为手机号
接下来,我们需要编写一个方法来判断一个字符串是否为手机号。
public boolean isPhoneNumber(String str) {
// 定义手机号的正则表达式
String regex = "^1[3456789]\\d{9}$";
// 创建Pattern对象
Pattern pattern = Pattern.compile(regex);
// 创建Matcher对象
Matcher matcher = pattern.matcher(str);
// 检测输入的手机号是否符合规则
return matcher.matches();
}
2.3 步骤三:判断是否为固话
类似地,我们也可以编写一个方法来判断一个字符串是否为固话。
public boolean isFixedPhone(String str) {
// 定义固话的正则表达式
String regex = "^(\\d{3,4}-)|\\d{3.4}-)?\\d{7,8}$";
// 创建Pattern对象
Pattern pattern = Pattern.compile(regex);
// 创建Matcher对象
Matcher matcher = pattern.matcher(str);
// 检测输入的固话是否符合规则
return matcher.matches();
}
2.4 步骤四:调用判断方法
最后,我们可以调用判断方法来判断给定的字符串是手机号还是固话。
public static void main(String[] args) {
// 创建一个实例
JudgePhoneNumberOrFixedPhone judge = new JudgePhoneNumberOrFixedPhone();
// 测试手机号
String phoneNumber = "13812345678";
if (judge.isPhoneNumber(phoneNumber)) {
System.out.println(phoneNumber + "是手机号");
} else {
System.out.println(phoneNumber + "不是手机号");
}
// 测试固话
String fixedPhone = "0755-12345678";
if (judge.isFixedPhone(fixedPhone)) {
System.out.println(fixedPhone + "是固话");
} else {
System.out.println(fixedPhone + "不是固话");
}
}
3. 总结
通过以上步骤,我们可以轻松地判断一个字符串是手机号还是固话。首先,我们引入了正则表达式来匹配手机号和固话的格式。然后,我们分别编写了两个方法来判断字符串是否为手机号和固话。最后,我们通过调用这两个方法来测试给定的字符串。这个方法可以在实际开发中帮助我们快速准确地判断用户输入的电话号码类型。