• Java学习笔记21(String类补充:正则表达式)


    正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章:

    功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是邮箱,等等

    示例:

    "[0-9]{6,12}"匹配规则:6到12位的数字,比如123456789就是true,12345就是false

    "1[3578][0-9]{9}"匹配规则:1开头,第二位是3578中的一个,后面九个任意数字,比如13345678912就是true

    "a*b"匹配规则:在多个a或者0个a之后有一个b,b必须是最后一个字符,比如aaaaab就是true,abc就是false

    String类中还有几个方法上篇没有提到,这里会用到 

    基础知识不再介绍,示例:

    matches方法:

    package demo;
    
    public class RegexDemo {
        public static void main(String[] args) {
            //检查QQ号码,不能0开头,全数字,5位到10位
            checkQQ();
            //检查手机号,1开头,第二位是34578,共11位
            checkTel();
        }
        public static void checkQQ(){
            String QQ = "123456";
            boolean b = QQ.matches("[1-9][\d]{4,9}");
            System.out.println(b);//true
        }
        public static void checkTel(){
            String telNumber = "13312345678";
            boolean b = telNumber.matches("1[34578][\d]{9}");
            System.out.println(b);//true
        }
    }

    split方法:

    package demo;
    
    public class RedexDemo {
        
        public static void main(String[] args) {
            split_1();
            split_2();
            split_3();
        }
        
        public static void split_1(){
            String str = "I   love         java";
            String[] strArr = str.split(" +");
            for (int i = 0; i < strArr.length; i++) {
                System.out.println(strArr[i]);
            }
            //打印出:I         love       java
        }
        
        public static void split_2(){
            String str = "10-12-45-78-62";
            String[] strArr = str.split("-");
            for (int i = 0; i < strArr.length; i++) {
                System.out.println(strArr[i]);
            }
            //打印出:10           12        45        78        62
        }
        
        public static void split_3(){
            String str = "192.168.160.1";
            String[] strArr = str.split("\.");
            for (int i = 0; i < strArr.length; i++) {
                System.out.println(strArr[i]);
            }
            //打印出:192    168        160        1
        }
    }

    replaceAll方法:

    package demo;
    
    public class RedexDemo {
        
        public static void main(String[] args) {
            replaceAll_1();
        }
        
        public static void replaceAll_1(){
            String str = "Hello666123Ilove789java";
            String str1 = str.replaceAll("[\d+]","#");
            System.out.println(str1);
            //输出:Hello######Ilove###java
            
            String str2 = str.replaceAll("[\d]+", "#");
            System.out.println(str2);
            //输出:Hello#Ilove#java
        }
    }

    正则表达式练习:

    package demo;
    
    public class RedexDemo {
        public static void main(String[] args) {
            //检查邮箱地址
            checkMail();
        }
        public static void checkMail(){
            String email = "abc123@sina.com.cn";
            boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\.[a-z]+)+");
            System.out.println(b);//true
        }
    }
  • 相关阅读:
    解决sqlite3 dos下显示中文乱码
    毕业两年
    成就感
    重构html的下拉框select
    ie6 select不兼容处理(转)
    全选删除确认改进
    GridView移动行变色
    gridview固定列的宽度并且能换行
    分页控件结合分页存储过程
    网页滚动条向下拉动奇慢的原因
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8266896.html
Copyright © 2020-2023  润新知