JAVA笔记09 正则表达式

1.补充Integer
 //int-------string
int num = 100;  

Integer integer = new Integer(num);
String s = integer.tostring();
System.out.println(s);

String str = num +"";

String str1 = String.valueof(num);

//string ---------- int 字符串转为int类型时,字符串里面的要为数字,否则出现报错 
Integer integer = new Integer("100000");
int i = integer.intvalue();
System.out.println(i);
2.检验qq号的规则
//检验qq号
//要求必须是5-15数字
//0不能开头
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的qq号");
String str = sc.nextline;
if(str.length>=5&&str.length<=15&&){
    if(!str.startWith=="0"){
        for(i=0;i<str.length;i++){
         //  Character.isDigit();确定是否为数字
            Char ch = str.CharAt(i);
            if(ch>="0"&&ch<="9"){
                System.out.println("qq号正确")}else{
                 System.out.println("qq号错误")}
    }
}
3.验证手机号规则
//手机号规则 11位 以1开头 每一位都是数字 13 15 17 18
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的手机号");
String str = sc.nextline;
if(str.lenth==11&&str.startWith(13)||startWith(15)||startWith(17)||startWith(18)){
    for(i=0;i<str.length;i++){
         //  Character.isDigit();确定是否为数字
            Char ch = str.CharAt(i);
           if(ch>="0"&&ch<="9"){
                 System.out.println("手机号正确")}else{
                 System.out.println("手机号错误")}
    }
}
4.正则表达式的学习
//正则表达式:正确规则的表达式,他是一门独立的语法,其它语言也支持
//作用:用来校验数据,符不符合我所定义正则表达式的规则
String regx = "a";
//"abc".matches(regx),用来判断你这个字符串,符不符合我传入的这个正则表达式
boolean b = "a".matches(regx);
boolean c = "a".equals(regx);
System.out.println(b)
regx = "[a,b,c]" //只要是我这里面一个就行
regx = "[1,2,3,4,5,6,7,8,9]";
regx = "[^0-9]" //不是我列表的某一个
regx = "[A-Za-z0-9]";
regx = ".";// 通配符,统配任意单个字符;
regx = "\\";//只匹配,本身,需要用转意符
regx = ".." //匹配两个任意字符
regx = "\\|;   //| 或者
regx = "\\d"; //等同于"[0-9]
regx = "\\w"; //等同于[0-9a-zA-Z]
regx = "a*"; //0次或多次
regx = "[a-z]"; //0次或1次
regx = "[a-zA-Z0-9]+"; //+ 一次或多次
regx = "[a-z]{5}"; //正好n次
regx = "[a-z]{2,}"; //不能少于2次
regx = "[0-9]{5-9}"; //大于等于5或小于等于9
练习1
//手机号规则 11位 以1开头 每一位都是数字 13 15 17 18
private static boolean check(String phoneNumber){
String number = "[1][3,5,7,8][0-9]{9}";
return phoneNumber.mathes(number);
练习2
// 邮箱 6-18个字符,可使用字母,数字,下划线,需以字母开头
private static boolean check(String eamil){
String number = "[a-zA-Z]\\w{5,17}@[a-z1-9]{2,10}\\.(com|net|cn|org)"
    return eamil.mathes(number);
练习3
校验身份证
String str ="[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]"
5.split方法的介绍
//正则表达式的分割功能 split()方法
//String类的功能:public String[] split(String regex)

String str = "username=张三"int index = str.indexof("=")
String substring = str.substring(0,index);
System.out.println(substring);
String substring1 = str.substring(index + 1);
System.out.println(substring1);


String[] split = str.split("=");
System.out.println(split[0]);
System.out.println(split[1]);

String str = "asdfasdf1234234asdfasdf12343asdfasdf";
String str1 = "[0-9]";
String[] split1 = str.split(str1);
System.out.println(Arrays.toString(split1));



练习题
	//需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
public class Demo{
    public static void main(String[] args){
String strs = "91 27 46 38 50";
String[] strs = str.split(" ");
int[] arr = new int[strs.length];
for(int i = 0; i<strs.length;i++){
    arr[i] = Integer.parseInt(strs[i]);
}
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i<arr.length;i++){
    sb.append(arr[i].append(" "));
    
}
String s = sb.toString().trim();
System.out.println(s);
    }
}
6.根据正则替换的方法
public class MyTest{
    pubic static void main(String[] args){
        String s = "奥巴马和普京是朋友".replace("奥巴马""*".replace("普京""*")
            
        String s = "奥巴马和普京是朋友".replaceAll("奥巴马""*")  
            
        String s1 = "121321awewrw12324sdfsdf131312sdfsd";
        String s1 = s1.replaceAll("[0-9]","")
    }
}
7.常见对象(Pattern和Matcher的概述
// pattern 模式器用来封装一个正则表达式
//matcher匹配器可以封装一个待匹配的数据
//可以通过匹配器中的方法进行匹配
//获取一个模式器
Pattern p = Pattern.compile("a*b*");
//通过模式器获取一个匹配器
Matcher m = p.matcher("aaaaab");
//进行匹配
boolean b = m.matches
System.out.println(b);

//如果你想看字符串符不符合正则表达式规则,那就使用matches()方法
boolean matches = "aaaaab".matches("a*b*");
System.out.println(b);



String str = "da jia ting wo shuo ,jin tian yao xia yu ,bu shang wan zi xi";
String str1 = "[a-z]{3}";
Pattern p = Pattern.compile(str1);
Matcher m = p.matcher(str);
boolean b = m.find();
if(b){
    String g = matcher.group();
    System.out.print(g);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值