实用类 -2

StringBuffer

String:字符串是一个不可变的对象,当字符串内容发生变化时,都会产生新的字符串。

StringBuffer(字符串缓冲区):有效提升字符串拼接等变换的性能(建议采用),可以把它理解为是一种可变的字符串。

构造方法:

  • StringBuffer() 创建一个空的字符串缓冲区

  • StringBuffer(String) 创建一个字符串缓冲区并添加好字符串

常用方法:

  • append(各种类型) : StringBuffer 向字符串缓冲区追加内容(重载方法)

  • toString() : String 将字符串缓冲区中的内容转换为字符串

  • insert(int offset, String str) : StringBuffer 向字符串缓冲区的指定位置追加内容,原有的内容会依次后移

  • deleteCharAt(int index) : StringBuffer 根据下标删除字符串缓冲区的指定字符

  • reverse() : StringBuffer 将字符串缓冲区中的内容反转

  • ...

在 StringBuffer 中有大量和 String 相同的方法,例如:substring(int start)、replace、length、charAt.....

StringBuilder 的 API 和 StringBuffer 相像,且性能更佳,但它是线程不安全的类型。

StringJoiner

构造方法:

  • StringJoiner(CharSequence delimiter) 只指定分隔符

  • StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 指定分隔符、前缀、后缀

常用方法:

  • add(CharSequence newElement) : StringJoiner 拼接字符串

  • toString() : String 将拼接的内容转换为字符串

  • merge(StringJoiner) : StringJoiner 拼接两个StringJoiner

以后可以利用 StringJoiner 优雅的实现一些字符串的拼接。

它的底层拼接字符串采用的是 StringBuilder,性能也不错。

时间和日期

Date类

java.util.Date

构造方法:

  • Date() 以当前系统的时间毫秒值来构建 Date 对象

  • Date(long date) 传入时间毫秒值来构建 Date 对象

常用方法:

  • getTime() : long 获取 Date 对象的时间毫秒值(从 January 1, 1970, 00:00:00 到现在的时间毫秒值)

  • setTime() : void 给 Date 对象指定时间毫秒值

  • before(Date when) : boolean 判断当前 Date 对象是否在指定 Date 对象之前

  • after(Date when) : boolean 判断当前 Date 对象是否在指定 Date 对象之后

  • equals(Object obj) : boolean 判断两个 Date 对象是否相同(时间一致)

  • ...

Calendar类

构造方法:

  • 没有构造方法,只有一个获取 Calendar 对象的方法

    • getInstance() : Calendar 因为 Java 帮助你实现了一系列的本地化处理

常用方法:

  • set(int field, int value) : void 给 Calendar 对象指定具体的时间字段值

    • 年:1,YEAR

    • 月:2,MONTH

    • 日:5,DATE

    • 时:10,HOUR

    • 分:12,MINUTE

    • 秒:13,SECOND

    • 星期:... DAY_OF_WEEK

    • ...

  • getTime() : Date 转换为 Date 对象

  • add(int field, int amount) : void 给指定的时间字段添加值(可以传入正数或负数)

  • ...

Java8的时间和日期

  • Instant:处理时间戳,类比 Date

    • now() : Instant

    • Date类

      • from(Instant) : Date

      • toInstant() : Instant

  • LocalDate:处理年月日信息(日期)

    • now() : LocalDate

    • of(年,月,日) : LocalDate

    • isLeapYear() : boolean 判断是否为闰年

    • ...

  • LocalTime:处理时分秒信息(时间)

    • now() : LocalTime

    • of(时,分,秒) : LocalTime

    • ...

  • LocalDateTime:处理年月日时分秒信息

    • now() : LocalDateTime

    • of(年,月,日,时,分,秒) : LocalDateTime

    • ...

格式化时间和日期

SimpleDateFormat:java.text Java 8以前的时间和日期类型使用

构造方法:

  • SimpleDateFormat(格式化字符串) 构建日期格式化对象

    // 指定格式化字符串:把时间和日期格式表示出来
    // y:年
    // M:月
    // d:日
    // H:小时
    // m:分钟
    // s:秒

常用方法:

  • parse(时间和日期字符串) : Date 解析字符串为 Date 对象

  • format(Date date) : String 格式化 Date 对象为字符串

DateTimeFormatter :Java 8的时间和日期类型使用

  • ofParttern(格式化字符串) : DateTimeFormatter

  • format(日期) : String

  • 在 Java 8 的时间和日期类型中,都有一个 parse 方法,可以传入一个 DateTimeFormatter 对象,以进行解析字符串为指定时间和日期类型的作用

BigDecimal

java.math.BigDecimal,用于精确的运算(浮点数计算)

构造方法:

  • BigDecimal(String val) 根据一个字符串数值创建对象

  • 记得千万不要用 BigDecimal(double val)

常用方法:

  • add(BigDecimal) : BigDecimal 加法

  • subtract(BigDecimal) : BigDecimal 减法

  • multiply(BigDecimal) : BigDecimal 乘法

  • divide(BigDecimal, int, int) : BigDecimal 除法

    • p2:int 代表保留几位小数

    • p3:int 代表规则

      • HALF_UP 四舍五入

      • 向上取整

      • 向下取整

      • ...

上一篇:Python 数据类型:布尔类型和None


下一篇:java 4舍5入