2021-07-13

java基础之string类及正则表达式

string类常用的方法:

1.截取字符串:
string.substring(起始位置,终止位置);
2.某个位置的字符
string.charAt(位置);

【需求】通过身份证号截取有效信息

package cn.aust.homework;

/**
*@author 作者:aoxixi
*@version 时间:2021年7月13日上午10:08:57
*@desc 描述:string类  身份证号
*/
public class Demo01 {
		public static void main(String[] args) {
			String card="34118200108156417";
			//1.截取出区域编码
			String str1=card.substring(0,6);
			System.out.println(str1);
			//2.截取出出生年月
			String str2=card.substring(6, 14);
			System.out.println(str2);//20010815
			//3.输出格式:xxxx年xx月xx日
			int year;
			year=Integer.parseInt(str2.substring(0, 4));
			int month;
			month=Integer.parseInt(str2.substring(4,6));
			int day;
			day=Integer.parseInt(str2.substring(6, 8));
			System.out.println(year+"年"+month+"月"+day+"日");
			//4.截取出倒数第二位,判断一下奇数为男,偶数为女
			char a=card.charAt(16);//car.substring(card.length()-2,card.length()-1);
									//int num=Integer.parseInt(car);
			if(a%2==0)
				System.out.println("女");
			if(a%2!=0)
				System.out.println("男");
			
		}
	}

正则表达式

【需求1】匹配字母及数字

package cn.aust.homework;
/**
*@author 作者:aoxixi
*@version 时间:2021年7月13日上午10:59:52
*@desc 描述:正则表达式
*/
public class Demo02 {
	public static void main(String[] args) {
		String str="1234";
		//任意的4位数
		String regex="[0123456789][0123456789][0123456789][0123456789]";
		System.out.println(str.matches(regex));//true
		regex="[0-9][0-9][0-9][0-9]";
		System.out.println(str.matches(regex));//true
		regex="[0-9]{4}";
		System.out.println(str.matches(regex));//true
		
		//8-16位数字
		str="12345678901";
		regex="[0-9]{8,16}";
		System.out.println(str.matches(regex));//true
		
		//转义字符\d就是转义为数字
		regex="\\d{8,16}";
		System.out.println(str.matches(regex));//true
		
		//正则表达式:以^开头,以$结尾
		regex="^\\d{8,16}$";
		System.out.println(str.matches(regex));//true
		
		// \D 转义为非数字
		str="abcd;;;;;";
		regex="^\\D{8,16}$";
		System.out.println(str.matches(regex));//true
		
		//
	}
}

【需求2】正则表达式通配符的使用

package cn.aust.homework;
/**
*@author 作者:aoxixi
*@version 时间:2021年7月13日上午11:15:43
*@desc 描述:正则表达式
*/
public class Demo03 {
	public static void main(String[] args) {
		//匹配规则:最少5位字母
		String str="abcdQ";
		String regex ="^[a-zA-Z]{5,}$";
		System.out.println(str.matches(regex));
		
		//通配符 * ? +
		//一位1-9的数字和一位a-z的组合,组合可以出现任意次数
		str ="1q2w3e4r";
		regex="^([0-9][a-z])*$";
		System.out.println(str.matches(regex));
		
		/**
		 * 作业:正则表达式
		 * 邮箱、手机号、身份证的匹配
		 */
		String str1="1786761296@qq.com";
		regex="^[a-zA-Z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
		System.out.println(str1.matches(regex));
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值