【实例描述】
日常生活中经常需要用户录入用户信息或联系方式,其中有一些数组的格式是固定的,程序处理逻辑也是按照这个格式来实现的,但是由于用户输入的是字符串,其灵活性较大,所以容易输入错误格式的数据。本实例将演示如何使用正则表达式来确定输入的电话号码格式是否匹配,实例的运行效果如图4.15 所示。
【实现过程】
(1)在Eclipse 中新建项目PhoneNumber,并在其中创建一个PhoneNumber.java 文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的用户信息。核心代码如下所示:
protected void do_button_actionPerformed(ActionEvent e) {String text = phoneNumField.getText(); // 获取用户输入
String info = check(text); // 对输入文本进行IP
验证
showMessageDialog(null, info); // 用对话框输出验证结
果
}
(2)然后对电话号码的正确性进行验证,首先判断字符串是否为空,然后再通过正则表达式对字符串进行验证。这里要注意我们设定的区号为3 位,电话号码为8 位。核心代码如下所示:
public String check(String text){if(text == null || text.isEmpty()){
return "请输入电话号码!";
}
// 定义正则表达式
String regex = "^\\d{3}-?\\d{8}|\\d{4}-?\\d{8}$";
// 判断输入数据是否为电话号码
if(text.matches(regex)){
return text + "\n 是一个合法的电话号码!";
}else{
return text + "\n 不是一个合法的电话号码!";
}
}
【代码解析】
本实例使用正则表达式对电话号码进行了格式匹配验证。正则表达式通常被用于判断语句中,来检查某一字符串是否满足某一格式。它是含有一些特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。正则表达式中的元字符及其意义如表4-1 所示。
【知识扩展】
一个Java 对象(字符串也是Java 对象)必须先初始化才能使用,否则编译器会报告“使用的变量未初始化”错误。