Java------正则表达式的应用

1.1.    验证电子邮箱
规则:
1、邮件地址的组成内容:用户名@公司域名;
2、用户名可以是数字、字母和下划线;长度最低为3,最多为20,且不能以下划线和数字0开头;
3、公司的域名,由数字、字母和连字符(-)组成,但第一个字符不能是连字符多级域名之间用 . 隔开;


1.2.    通过正则,使用****替换字符串中所有手机号码的中间4位 (选做)
原字符串:"张三:13233332323;李四:15666668888;王五:18288999988";
替换后的字符串:"张三:132****2323;李四:156****8888;王五:182****9988";


1.3、统计指定字符在字符串中出现的次数
    "ming tian fang jia ,zai jia zuo zuoye";
    统计'a'出现的次数
    
1.4、统计指定字符串在另外一个字符串中出现的次数
    "ming tian fang jia ,zai jia zuo zuoye";
    "jia"的次数
 

1.编写正则类Regex

package com.bdsw.wxl.day2.homework;

import java.util.Scanner;

/**
 * 
 * @author 王雪亮
 * @date 2018年7月17日
 * @Description 正则表达式习题:
 *                   ①验证邮箱
 *                   ②对手机号中间4位做加密处理
 */
public class Regex {
	/**
	 * 
	 *@function 验证邮箱
	 */
	public static void vertifyMail() {
		//1.定义正则表达式regex
		String regex="[a-zA-Z1-9](\\w){2}(\\w){0,17}@\\w(\\w|-)*(.\\w(\\w|-)*)*";
		while(true)
		{
			//2.输入字符串s
			Scanner sc=new Scanner(System.in);
			String s=sc.next();
			
			//3.判断是否合法,若不合法,重新输入
			if(s.matches(regex)==true)
				{System.out.println("输入的邮箱为合法邮箱");break;}
			else System.out.println("输入邮箱不合法,请重新输入!");
		}
	}
	
	/**
	 * 
	 *@function 对手机号中间4位做加密处理
	 */
	public static void replace() {
		//1.定义正则表达式regex
		String regex="1[35789]\\d{9}";
		while(true)
		{
			//2.输入字符串s
			Scanner sc=new Scanner(System.in);
			String s=sc.next();
			
			//3.判断是否合法
			if(s.matches(regex)==true)
			{
				//3.1若合法,加密输出
				String str1=s.substring(0, 3);
				String str2=s.substring(7,11);
				String str=str1+"****"+str2;
				System.out.println(str);break;}
			 
			else //3.2若不合法,重新输入
				System.out.println("输入手机号不合法,请重新输入!");
		}
	}

}

2.编写字符串类String1

package com.bdsw.wxl.day2.homework;

/**
 * 
 * @author 王雪亮
 * @date 2018年7月17日
 * @Description 字符串相关习题
 *                 ①:统计字符'a'出现的次数
 *                 ②:统计字符串"jia"出现的次数
 *                 ③:通过一个字符串,绘制对应的三角形
 */
public class String1 {
	
	/**
	 * 
	 *@function 统计字符'a'出现的次数
	 */
	public static void count() {
		//1.定义字符串s
		String s="ming tian fang jia ,zai jia zuo zuo ye.";
		//2.将字符串s拆分成字符数组,存放在字符数组a中
		char a[]=s.toCharArray();
		int count=0;
		//3.遍历字符数组,将出现的次数存放在count中
		for(int i=0;i<a.length;i++)
			if(a[i]=='a') count++;
		System.out.println("a出现"+count+"次");
	}
	
	/**
	 * 
	 *@function 统计字符串'jia'出现的次数
	 */
	public static void countSubString() {
		//1.定义字符串s
		String s="ming tian fang jia ,zai jia zuo zuo ye.";
		//2.将字符串通过"jia"拆分相应次数的子字符串
		String a[]=s.split("jia");
		//3."jia"出现的次数=子字符串的个数-1
		int n=a.length-1;
		System.out.println("jia出现"+n+"次");
	}

	/**
	 * 
	 *@function 通过一个字符串,绘制对应的三角形
	 */
	public static void triAngle() {
		String str="abcde";
		 for (int i = 1; i <= str.length(); i++) {  
             for (int j = i; j <= str.length(); j++) { 
                 System.out.print(str.substring(j - i, j)+"  ");  
             } 
             System.out.print("\n"); 
         }  
		
	}
}

3.编写测试类Main

package com.bdsw.wxl.day2.homework;

public class Main {
	public static void main(String[] args) {
		System.out.println("\n\n------4.统计100个随机数中0~9的个数:");
		Array.total();
		System.out.println("\n\n------5.验证邮箱:");
		Regex.vertifyMail();
		System.out.println("\n\n------6.对手机号中间4位做加密处理:");
		Regex.replace();
		System.out.println("\n\n------7.统计字符'a'出现的次数:");
		String1.count();
		System.out.println("\n\n------8.统计字符串\"jia\"出现的次数:");
		String1.countSubString();
//		System.out.println("\n\n------9.通过一个字符串,绘制对应的三角形:");
//		String1.triAngle();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

靓仔很忙i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值