《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
		
	}
}

可见,使用了正则表达式,一行就代表了上边很多行。




原文地址:https://www.cnblogs.com/wanghang/p/6299818.html