从键盘输入一串连续的数字,判断输出是否为电话号码。(可以自行设定137/138/139等等, 但是长度固定)
方法一:使用Matches进行字符匹配
实验代码:
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入手机号(仅限137/138/139开头):");
while (true) {
String number = scanner.next();
String regex = "13[789]{1}[0-9]{8}";
if (number.matches(regex)) {
System.out.println("你输入的是电话号码");
break;
} else {
System.out.println("你输入的不是电话号码!");
System.out.println("请重新输入:");
}
}
}
}
运行结果:
方法二:定义数组进行匹配
实验代码:
import java.util.Scanner;
public class Phone {
public static void main(String[] arss) {
char[] num_str = new char[11];
System.out.println("请输入11位手机号(仅限137/138/139开头):");
Scanner num = new Scanner(System.in);
while (true) {
String num_phone = num.next();
// 用户第一次输入或者输入出错,提示用户再次输入再次输入
if (num_phone.length() == 11) {
num_str = num_phone.toCharArray();
for (int i = 0; i < num_str.length; i++) {
// 匹配以137开头的号码
if (num_str[0] == '1' && num_str[1] == '3' && num_str[2] == '7') {
System.out.println("您的号码输入正确!");
System.out.println("您的号码为," + num_phone);
break;
}
// 匹配以159开头的号码
else if (num_str[0] == '1' && num_str[1] == '3' && num_str[2] == '8') {
System.out.println("您的号码输入正确!");
System.out.println("您的号码为," + num_phone);
break;
}
// 匹配以182开头的号码
else if (num_str[0] == '1' && num_str[1] == '3' && num_str[2] == '9') {
System.out.println("您的号码输入正确!");
System.out.println("您的号码为:" + num_phone);
break;
} else {
System.out.println("您输入的号码不存在,请再输入一遍!!!");
break;
}
}
} else {
System.out.println("您输入的号码过短或过长,请再输入一遍!!!");
}
}
}
}
运行结果: