代码改变世界

正则表达式

2018-05-25 17:01  yelena  阅读(173)  评论(0编辑  收藏  举报

正则表达式定义:使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串

字母x:字母x

\\:\

\t:空格

\n:换行

\r:回车

[abc]:a b c中的任一个

[^abc]:除了a b c 以外的一个

[a-zA-Z]:a到z和A到Z之间的一个

[0-9]:0到9之间的一个

[a-zA-Z_0-9]:a到z A到Z _0到9之间的一个

.:任意一个字符 只想使用.的话 用\\.

\d:等同于[0-9]

\w:等同于[a-zA-Z_0-9] 单词字符

^[abc]:以a b c 中的一个开头

[0-9]$:以数字结尾

\b[abc]\b:a b c 的两边需要非单词字符

x?:出现1次或者0次

x*:出现0次或者多次

x+:出现1次或者多次

x{n}:x出现n次

x{n,}:x至少出现n次

x{n,m}:x出现n-m次

正整数:\\d+

正小数:\\d+\\.\\d+  

负整数:-\\d+

负小数:-\\d+\\.\\d+

保留两位小数的正数:\\d+\\.\\d{2}

保留1-3位小数的正数:\\d+\\.\\d{1,3}

方法:

matches():返回值是boolean

aplit():拆分字符串,返回字符串数组

replaceAll():替换

 

检校qq号码
//        1,必须5-15位
//        2,0不能开头
        String regex = "[1-9][0-9]{4,14}";
        String str = "12345";
        boolean f = str.matches(regex);
        System.out.println(f);
//        检校手机号码
//        1,必须11位
//        2,第一位为1,第二位为3,4,5,7,8
//        第三位为0-9之间的9位数字
        String regex1 = "1[34578][\\d]{9}";
        String str1 = "13512345678";
        boolean f1 = str1.matches(regex1);
        System.out.println(f1);
        String str2 = "138-1357-2468";
        String regex2 = "8";
        String[] str22 = str2.split(regex2);
        System.out.println(str22);
        //增强for
        for(String a:str22){
            System.out.println(a);
            //String a:定义要遍历的数组或集合的变量
            //数组或集合名
        }
        String str3 = "i love java,java loves me";
        String regex3 = "a";
        String s = str3.replaceAll(regex2,"b");
        System.out.println(s);
        String regex5 = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
        String str5 = "12345678@qq.com.cn";
        boolean b1 = str5.matches(regex5);
        System.out.println(b1);

 

 

 

 

Date类

获取当前日期的毫秒值

long sysdate = System.currentTimeMillis();

获取的是距离时间原点的一个毫秒值 1970-01-01 00:00:00

Date类的构造方法

空参构造:获得当前日期

有参构造:传一个long类型数值,获得一个日期

//空参构造,当前日期的函数
        Date d = new Date();
        System.out.println(d);
        //毫秒值转date日期
        Date d2 = new Date(1000000000000l);
        System.out.println(d2);

方法:

getTime():获取调用者距离时间原点的一个毫秒值

System.out.println(d.getTime());
        System.out.println(d2.getTime());

 

 

 

DateFormat类:

抽象类,用于把时间或日期格式化

一般用子类SimpleDateFormat类

SimpleDateFormat sdf = new SimpleDateFormat();括号里放置自己想要的日期格式

方法:

format():括号里面放置Date类对象 返回值是一个String类型

//日期格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
        //将日期对象转换成字符串
        Date d = new Date();
        String str = sdf.format(d);
        System.out.println(str);

parse():括号里放置String类型对象,返回值是一个Date类型

//将字符串转成日期对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String date = "2000-12-22";
        Date d = sdf.parse(date);
        System.out.println(d);

 

 

 

Calender类

抽象类,不能直接创建,要调用静态方法创建

getinstance()方法

方法的使用

get():返回指定的日历字段的值,括号中需要用Calender.year这种写法

add():增加或减去指定的时间量

getTime():返回一个调用者距离时间原点的Date类型对象

set():把指定日历字段设置成括号里的值

Calendar c = Calendar.getInstance();
        System.out.println(c.get(Calendar.DAY_OF_WEEK));
        System.out.println(c.get(Calendar.MONTH)+1);
        //c.add(Calendar.DATE,3);
        System.out.println(c.get(Calendar.DATE));
        Date d = c.getTime();
        System.out.println(d);
        c.set(Calendar.YEAR,2099);
        c.set(Calendar.MONTH,6);
        c.set(Calendar.DATE,6);
        c.set(2055, 6, 12);
        System.out.println(c.get(Calendar.YEAR));