Object、正则表达式、日期操作

思维导图

一、正则表达式
  1. 正则表达式
    是一组特殊的字符,描述一个字符串格式
    对字符串可以进行复杂操作
    不关心内容是否有效,只关心格式是否正确
  2. 作用: 匹配字符串是否满足给定格式
  3. 字符集合
    [ ] 表示一个字符
    [123] 表示123中任意一个字符
    [0-9] 表示0~9中任意一个字符
    [ ^123 ] 除了123的任意字符
    [a-z&&[ ^b ]] a~z中除了bc以外的任意一个字符
  4. 数量词
    x? 表示0个或1个x
    x* 表示0个或任意多个x
    x+ 表示1个到任意多个x
    x{n} 表示n个x
    x{n, } 表示n个到任意多个x
    x{n, m} 表示n个到m个x
  5. 预定义
    . 任意一个字符
    \d 任意一个数字字符,相当于[0-9]
    \w 单词字符,相当于[a-zA-Z0-9_]
    \s 空白字符
    \D 非数字字符
    \W 非单词字符
    \S 非空白字符
  6. 分组( ): 将一系列正则表达式看作整体,分组与分组直接可以用"|"表示或
  7. “^“和”$” 表示字符串开始和结束,不写方法内部自动添加
  8. 方法
    boolean matches(String regex) 将一个字符串与正则表达式进行匹配
    String[] split(String regex) 将字符串拆分成字符串数组
    String replaceAll(String regex, String replacement) 将字符串中匹配正则表达式regex的字符串替换成replacement
二、Object
1. 所有类的超类

直接继承: 创建class后没有继承任何类,在Java编译器编译的时候,自动添加关键字extends,继承Object类
间接继承: 这个类继承了另一个类,类外的类间接或直接继承Object

4. String toString()

没有重写输出的是地址值 (当前类继承Object类,Object类中输出的是当前对象的地址值)
重写后输出的给定的内容

3. boolean equals()

equals没有重写比较地址值,重写后比较内容、= =是比较值是否相等
String是final类,已经重写了toString方法
= =比较是否是一个对象 (可能值相等,但不是一个对象)
equals比较值是否相等

三、日期操作
1. Date

java.util.Date

Date的每一个实例用来表示一个确切的时间点; 内部(对象)维护了一个long值,距1970.1.1的毫秒值;
正数是1970年以后的日期,负数是1970年以前的日期;
由于Date设计上存在缺陷(时区、千年虫),导致大部分方法设置为“过时的”(不建议使用)。

toString()

格式: Sat Sep 08 16:13:35 CST 2018;
Date重写了toString,返回的字符串显示的是当前Date表示的时间;

long getTime()

获取Date内部维护的long值

void setTime(long)

设置一个long值,使Date表示该long值所表示的时间

大部分方法已过时(eg: getYear()、getMonth()等)

2. SimpleDateFormat

java.text.SimpleDateFormat

根据给定日期格式将String与Date相互转换: Date–>String 格式化、​String–>Date​ 解析

日期格式

y-年、M-月、d-日 写M,如果表示两位数的月份,最后还是会自动显示两位月份
E-星期、a-AM或PM标识
H-小时(24)、h-小时(12)、m-分钟、s-秒

构造方法

SimpleDateFormat()
SimpleDateFormat(String pattern)
用给定模式和默认语言环境的日期格式符号构造

String format(Date date) Date–>String

将给定的Date,转换为SimpleDateFormat指定日期格式的字符串

Date parse(String source) String–>Date

将给定的字符串按照SimpleDateFormat指定日期格式解析为Date对象;
注: 如果字符串格式和SimpleDateFormat格式不一致,在解析时会发生异常: ​java.text.ParseException: Unparseable date

3. Calendar
  • java.util.Calendar 抽象类,常用实现类是格里高里历(阳历)。
  • getInstance() 使用Calendar静态方法创建实例。
  • Date getTime() Calendar–>Date
  • void setTime(Date date) Date–>Calendar
  • void set(int field, int value) 针对不同时间分量单独设置值
    • 设定月: 月从0开始,0表示1月,或者可以使用具体月的常量
    • 设定日: DATE月中天、DAT_OF_MONTH与DATE一致
  • int get(int field) 获取对应时间分量的值
    • 获取月: 需要加1,因为月是从0开始
    • 获取时: HOUR是12小时制、HOUR_OF_DAY是24小时制
    • 获取星期: 国外是从星期日开始,从1开始
  • int getActualMaximum(int field) 获取某一时间分量所允许的最大值
  • void add(int field, int value) 对指定时间分量加上给定的值
    若给定的值是负数,则是减去给定的值
  • 日期开发思路
    • Step1.获取用户输入的日期字符串
    • Step2.使用SimpleDateFormat将其转换为Date
    • Step3.创建一个Calendar,使其表示Date表示的日期
    • Step4.使用Calendar根据需求计算时间
    • Step5.将Calendar转换为一个Date
    • Step6.使用SimpleDateFormat将Date转换为字符串后显示给用户

猜你喜欢

转载自blog.csdn.net/awen6666/article/details/103620459
今日推荐