class Test {
	
/*		正则表达式实例
	. 任何字符(与行结束符可能匹配也可能不匹配) 
	\d 数字:[0-9] 
	\D 非数字: [^0-9] 
	\s 空白字符:[ \t\n\x0B\f\r] 
	\S 非空白字符:[^\s] 
	\w 单词字符:[a-zA-Z_0-9] 
	\W 非单词字符:[^\w] 
	X? X,一次或一次也没有 
	X* X,零次或多次 
	X+ X,一次或多次 
	X{n} X,恰好 n 次 
	X{n,} X,至少 n 次 
	X{n,m} X,至少 n 次,但是不超过 m 次 
	捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组: 

	1     ((A)(B(C))) 
	2     \A 
	3     (B(C)) 
	4     (C) */


	//main方法
	public static void main(String[] args) {
		Test test = new Test();
		//号码格式验证
		test.matchesTelphone("138123456789");  //正确格式
		test.matchesTelphone("13812345678");  //错误格式 长度不对
		//字符串分割
		test.splitString("大          家 晚上                        好呀!");
		//去除重复字
		test.overlapString("大家家家家晚上上好呀");
		
	}
	public void matchesTelphone(String number){
		//手机号码格式  1开头  第二个数字为 3或5或7或8 3到11位为数字即可
		if(number.matches("1[3578]\\d{3,11}")){
			System.out.println("the number is legal");
		}
		else{
			System.out.println("the number is illegal");
		}
	}
	public void splitString(String originalString){
		//要求,按空格分割字符串
		String[] string = originalString.split(" +");
		System.out.println(Arrays.toString(string));
	}
	public void overlapString(String originalString){
		//要求,去除重复字
		String[] string = originalString.split("(.)\\1+");
		System.out.println(Arrays.toString(string));
	}
}

  

posted on 2017-08-01 15:21  人生第一步  阅读(125)  评论(0编辑  收藏  举报