《java入门第一季》之好玩的正则表达式
先不通过正则表达式来判断输入的qq号码是否正确。
import java.util.Scanner; /* * 校验qq号码. * 1:要求必须是5-15位数字 * 2:0不能开头 * * 分析: * A:键盘录入一个QQ号码 * B:写一个功能实现校验 * C:调用功能,输出结果。 */ public class RegexDemo { public static void main(String[] args) { // 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入你的QQ号码:"); String qq = sc.nextLine(); System.out.println("checkQQ:"+checkQQ(qq)); } /* * 写一个功能实现校验 */ public static boolean checkQQ(String qq) { boolean flag = true; // 校验长度 if (qq.length() >= 5 && qq.length() <= 15) { // 0不能开头 if (!qq.startsWith("0")) { // 必须是数字 char[] chs = qq.toCharArray(); for (int x = 0; x < chs.length; x++) { char ch = chs[x];//每一个字符 if (!Character.isDigit(ch)) { flag = false; break; } } } else { flag = false; } } else { flag = false; } return flag; } }
接着,正则表达式来做校验。
import java.util.Scanner; /* * 正则表达式:符合一定规则的字符串。 */ public class RegexDemo2 { public static void main(String[] args) { // 创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入你的QQ号码:"); String qq = sc.nextLine(); System.out.println("checkQQ:" + checkQQ(qq)); } public static boolean checkQQ(String qq) { return qq.matches("[1-9]\\d{4,14}");//括号里面就是正则表达式的规则。\d代表[0-9]。要在正则表达式中表示\d要写成\\d } }
可见,使用了正则表达式,一行就代表了上边很多行。