JAVA小练习131——正则的练习--正则对字符串的常见的操作

本文详细介绍了一种利用正则表达式进行手机号码和固定电话号码验证的方法,并演示了如何使用正则表达式进行字符串的切割和替换操作,包括处理重复字符和敏感信息的遮盖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Arrays;


public class Demo131 {

	public static void main(String[] args) {
		matchPhone("1356082481");
		matchTel("020-3322560");
		 splitTest2();
		 repalcePhone();
		repalce2();
	}
	
	
	/*匹配一个手机号
	 	手机号码的规则:
	 		1. 首位必须是1.
	 		2. 第二位: 3  4 、5 、 7、 8、
	 		3. 长度 必须是11位
	 */
	public static void matchPhone(String phone){
		String reg = "1[34578]\\d{9}";
		System.out.println(phone.matches(reg)?"合法手机号":"非法手机号");
		
	}
	
	/*
	 * 匹配一个固定电话
	 * 	规则:
	 * 		区号: 
	 * 			1. 长度3~4位.
	 * 			2. 必须以0开头。
	 * 		主机号:
	 * 			1.首位不能是0.
	 * 			2.长度 是: 7~8位			
	 */
	public static void matchTel(String tel){
		String reg = "0\\d{2,3}-\\d{6,7}";
		System.out.println(tel.matches(reg)?"合法固话号":"非法固话号");
	}
	
	
	//需求: 根据空格切割。 
	public static void splitTest1(){
		String str = "明   天        学                i                 o";
		String reg = " +";
		String[]  datas = str.split(reg);
		System.out.println("数组的元素:"+ Arrays.toString(datas));
	}
	
	
	//需求: 根据重叠词进行切割。
	public static void splitTest2(){
		String str = "我要要要成为为高富富富富富富帅";  //  我  成     高   帅
		String reg = "(.)\\1+";  
		/*
		后面的一个正则字符要使用到前面正则匹配的内容。 前面正则的内容需要被复用起来。   如果正则的内容需要被复用,那么就需要进行分组。
		每一个组都有一个编号,编号从1开始。
		*/
		String[] datas = str.split(reg);
		System.out.println("数组的元素:"+ Arrays.toString(datas));		
	}	
	
	
	//需求: 把手机号替换成***。     一3五
	public static void repalcePhone(){
		String str = "如果有需要请联系:13556084321如果有需要请联系:13556084321如果有需要请联系:13556084321如果有需要请联系:13556084321"
				+ "如果有需要请联系:13556084321如果有需要请联系:13556084321如果有需要请联系:13556084321如果有需要请联系:13556084321如果有需要请联系:13556084321";
		
		String reg = "1[34578]\\d{9}";
		str = str.replaceAll(reg, "****");
		System.out.println("帖子的内容:"+ str);
	}
	
	
	//需求: 把重叠词替换成单个字符。
	public static void repalce2(){
		String str = "我我我我我要要要成成成成成成为为高富富富富富富帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅帅";
		str = str.replaceAll("(.)\\1+", "$1");   //注意引用正则的内容如果不是在一个正则表达式内部,那么需要使用 :  "$组号" 进行引用
		System.out.println(str);
	}
	
	
	
	
	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值