美文网首页软件测试学习之路我爱编程
Java学习笔记 12 - 正则表达式,Date,SimpleD

Java学习笔记 12 - 正则表达式,Date,SimpleD

作者: 乘风破浪的姐姐 | 来源:发表于2018-07-09 17:44 被阅读1次

    本文主要内容
    1、正则表达式
    2、Date类的用法
    3、SimpleDateFormat
    4、Calendar类的用法

    01 正则表达式

    A、正则表达式语法规则
    x 代表的是字符x
    \ 代表的是 反斜线''
    \t 制表符
    \n 换行
    \r 回车符
    [abc] 是a,b,c中的任意一个字符
    [^abc] 除了a,b,c以外的任意字符
    [a-zA-Z] 匹配a-z A-Z 中的任意一个字符
    [0-9]或\d 匹配 0-9中的任意一个数字
    [a-zA-Z 0-9] 或\w 匹配a-z A-Z 0-9中的任意一个字符
    $ 代表的是行的结尾
    ^ 代表的是行的开头
    \b 代表的是单词的边界
    \D 匹配不是数字

    X? 代表的是 X出现一次或一次也没有
    X* 代表的是X出现0次或多次
    X+ 代表的是X出现的一次或多次
    X{n} 代表X出现恰好n次
    X{n,}代表X出现至少n次
    X{n,m}代表X出现至少n次,但不超过m次

    B、正则表达式常用的方法
    boolean matches(String 正则的规则) 正则规则与字符串进行匹配,"abc".matches("[a]")
    String[] split(String 正则的规则) 使用规则对字符串进行切割,如果正则规则在字符串中不存在则返回原字符串, "abc".split("a")
    String replaceAll(String 正则的规则,String str) 按照正则的规则,替找字符串。"abc0123".repalceAll("[\d]","#")

    eg、检查QQ号码是否合法
    0不能开头,全数字,位数5-10位
    [1-9][0-9]{4,9} 或 [1-9][\d]{4,9}

    public static boolean checkQQ(){
        String qq = "1234567";
        boolean b = qq.matches("[1-9][0-9]{4,9}");
        return b;
    }
    

    eg、检查手机号是否合法
    1开头,第二位可以是3,4,5,7,8,第三位开始可以是任意数字,固定位数11位

                public static boolean checkPhone(){
                  String phoneNumber = "13345226002";
                  boolean b = phoneNumber.matches("1[34578][0-9]{9}");
                  return b;
                  }
    

    eg、检查邮箱是否合法

                  public static void checkMail(){
                    String email ="abc123@sina.com";
                    boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
                    System.out.println(b);
                }
    

    eg、对指定字符串进行切割
    X+ 代表的是X出现的一次或多次

         String str = "12  44    22  1      4";
     String s[] = str.split(" +");
    

    eg、对IP地址进行切割

      String str = "192.168.100.11";
      String s[] = str.split("\\.");
    
    02 Date类

    引自包:java.util.Date
    A、毫秒值概念
    毫秒概念: 1000毫秒=1秒
    毫秒的0点:即时间原点( 公元1970年1月1日,午夜0:00:00 )

    System.currentTimeMillis() 返回值long类型参数
    long time = System.currentTimeMillis();
    System.out.println(time); //输出:3742769374405
    

    B、Date类的构造函数
    1、Date类空参数构造方法获取到的是,当前操作系统中的时间和日期

      public static void function(){
        Date date = new Date();
        System.out.println(date);
    }
    

    2、Date类的long参数的构造方法
    Date(long ) 表示毫秒值.传递毫秒值,将毫秒值转成对应的日期对象

        public static void function_1(){
        Date date = new Date(0);
        System.out.println(date);
      }
    

    C、Date类的get和set方法
    1、setTime(long times)将日期对象,设置到指定毫秒值上

       public static void function_setTime(){
        Date date = new Date();
        System.out.println(date);
        
        date.setTime(0);
        System.out.println(date);
    }
    

    2、getTime() 返回值long,返回的是毫秒值。将Date表示的日期,转成毫秒值

      public static void function_getTime(){
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);
    }
    
    03 SimpleDateFormat类

    A、特点
    SimpleDateFormat,日期进行格式化(自定义)
    是java.text.DateFormat 的抽象类
    对日期进行格式化的步骤:
    1、 创建SimpleDateFormat对象
    在类构造方法中,写入字符串的日期格式 (自己定义)
    2、 SimpleDateFormat调用方法format对日期进行格式化
    public String format(Date date) 传递日期对象,返回字符串
    3、日期模式
    yyyy 年份
    MM 月份
    dd 月中的天数
    HH 0-23小时
    mm 小时中的分钟
    ss 秒

    B、Date转换为String
    使用SimpleDateFormat类下的format()方法
    转换步骤:

    1. 创建SimpleDateFormat对象
      在类构造方法中,写入字符串的日期格式 (自己定义)

    2. SimpleDateFormat调用方法format对日期进行格式化
      String format(Date date) 传递日期对象,返回字符串

       public static void function(){
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分钟ss秒");
       String date = sdf.format(new Date());
       System.out.println(date);
      

      }
      C、String转换为Date
      使用SimpleDateFormat类下的parse()方法
      转换步骤:

    3. 创建SimpleDateFormat的对象
      构造方法中,指定日期模式

    4. 子类对象,调用方法 parse 传递String,返回Date

         public static void function() throws Exception{
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       Date date = sdf.parse("1995-5-6");
       System.out.println(date);
      

      }

    04 Calendar类

    日历类(抽象类),引自包java.util.Calendar
    A、创建对象
    Calendar类写了静态方法 getInstance() 直接返回了子类的对象
    不需要直接new子类的对象,通过静态方法直接获取
    B、成员方法
    getTime() 把日历对象,转成Date日期对象
    get(日历字段) 获取指定日历字段的值
    set(int field,int value) 设置指定的时间
    add(int field, int value) 进行整数的偏移
    int get(int field) 获取指定字段的值

    eg:闰年计算

        public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2008,2,1);
    
        calendar.add(Calendar.DAY_OF_MONTH,-1);
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
    }
    

    eg:计算出生了多少天

    public static void main(String[] args) throws ParseException {
        System.out.println("请输入出生年月日,格式为yyyy-MM-dd");
        String birthdayStr = (new Scanner(System.in)).next();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdayDate = sf.parse(birthdayStr);
        Long day =  (new Date()).getTime() - birthdayDate.getTime();
        Long daysum = day/1000/60/60/24;
        System.out.println(daysum);
    }
    

    相关文章

      网友评论

        本文标题:Java学习笔记 12 - 正则表达式,Date,SimpleD

        本文链接:https://www.haomeiwen.com/subject/hrutpftx.html