import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Text21 { public static void main(String[] args) { //编写代码 } }(2) 声明 String 类型的 regex 变量,它是用于验证电话号码的表达式。代码如下:
String regex = "0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}|13[0-9]\\d{8}|15[1089]\\d{8}";电话号码包括固定电话和手机号码。其中固定电话是由区号和号码组成,区号是以 0 开头的,后面是 2~3 位数,因此在匹配区号的时候可以使用正则表达式
0\d{2,3}
。固定电话号码由 7~8 位数字组成,因此可以使用表达式\d{7,8}
来进行匹配。固定电话的组合方式可能是“区号-号码”或者是“区号号码”,因此匹配固定电话号码时,可以使用“0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}”表达式。String answer = "Y";(4) 使用 do…while 语句进行操作,首先接收用户在控制台输入的电话号码,然后利用 Pattern 类进行编译,接着创建给定输入模式的匹配器,调用 matches() 方法返回匹配的结果。如果结果为 true 表示验证通过,如果为 false 表示验证失败。代码如下:
do { System.out.print("请留下您的电话号码:"); Scanner scan = new Scanner(System.in); String phone = scan.next(); // 接收用户在控制台输入的电话号码 Pattern pattern = Pattern.compile(regex); // 编译正则表达式 Matcher matcher = pattern.matcher(phone); // 创建给定输入模式的匹配器 boolean bool = matcher.matches(); if(bool) { // 如果验证通过 System.out.println("输入的电话号码格式正确。"); } else { System.out.println("输入的电话号码无效,格式不正确。"); } System.out.print("是否继续输入?(Y/N 或者 y/n)"); answer=scan.next(); }while(answer.equalsIgnoreCase("Y")); System.out.println("注册结束。");(5) 运行代码进行测试,如下所示:
请留下您的电话号码:18812345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:180112345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。
请留下您的电话号码:010-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:010-123456789 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:0388-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。
本文链接:http://task.lmcjl.com/news/10266.html