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));
}
}