Java常用类(时间LocalDate,Comparable,Comparator等)

2023-10-01 14:17:42 浏览数 (1)

前言

代码语言:txt复制
    本文主要也是介绍了Java语言中常用的类及其常用方法,包括String、LocalDate、LocalTime、LocalDateTime、DateTimeFormatter、Math类、Comparable接口和Comparator接口。通过对这些类和方法的学习,可以更好地理解和应用Java语言的基础知识,这些类在实际开发中也是用的很频繁,提高编程效率和质量。

一、String类

String类是Java语言中最常用的类之一,它表示字符串。以下是一些常用的String方法:

  1. char charAt(int index):返回指定索引位置的字符。
  2. int length():返回字符串的长度。
  3. String substring(int beginIndex, int endIndex):返回从beginIndex到endIndex(不包括endIndex)之间的子字符串。
  4. boolean equals(Object obj):比较两个字符串的内容是否相同。
  5. boolean contains(CharSequence s):判断字符串是否包含指定的CharSequence。
  6. int indexOf(int ch) 和 int indexOf(String substring):分别返回指定字符或子字符串在字符串中第一次出现的位置索引。
  7. String toUpperCase() 和 String toLowerCase():分别将字符串转换为大写和小写形式。
  8. String replace(char oldChar, char newChar):将字符串中的所有oldChar替换为newChar。
  9. boolean startsWith(String prefix) 和 boolean endsWith(String suffix):分别判断字符串是否以prefix开头或以suffix结尾。

代码案例:

代码语言:javascript复制
public class Main {  
    public static void main(String[] args) {  
        // 创建一个String对象  
        String greeting = "Hello, World!";  
        System.out.println("原始字符串: "   greeting);  
  
        // 获取字符串长度  
        int length = greeting.length();  
        System.out.println("字符串长度: "   length);  
  
        // 获取单个字符  
        char firstChar = greeting.charAt(0);  
        System.out.println("第一个字符: "   firstChar);  
  
        // 字符串截取  
        String substring = greeting.substring(7, 13);  
        System.out.println("截取的子串: "   substring);  
  
        // 字符串替换  
        String replacedString = greeting.replace("World", "Java");  
        System.out.println("替换后的字符串: "   replacedString);  
  
        // 字符串比较  
        boolean isEqual = "Hello".equals("Hello");  
        System.out.println("两个字符串是否相等: "   isEqual);  
    }  
}

二、LocalDate类

LocalDate类表示一个具体的日期,不包含时间信息。以下是一些常用的LocalDate方法:

  1. int getYear()、int getMonthValue()、int getDayOfMonth():分别获取年份、月份和日期。
  2. LocalDate plusDays(long days)、minusDays(long days):分别表示在原日期上加上或减去指定天数。
  3. LocalDate plusMonths(long months)、minusMonths(long months):分别表示在原日期上加上或减去指定月数。
  4. LocalDate plusYears(long years)、minusYears(long years):分别表示在原日期上加上或减去指定年数。
  5. boolean isLeapYear():判断是否是闰年。
  6. int lengthOfMonth()、int lengthOfYear():分别获取当前月份的天数和当前年份的天数。
  7. ZonedDateTime toZonedDateTime()、LocalTime toLocalTime():分别将LocalDate转换为ZonedDateTime或LocalTime。
  8. String format(DateTimeFormatter formatter):将LocalDate格式化为指定格式的字符串。
  9. LocalDate parse(CharSequence text, DateTimeFormatter formatter):将指定格式的字符串解析为LocalDate。

代码案例:

代码语言:javascript复制
import java.time.LocalDate;  
import java.time.format.DateTimeFormatter;  
  
public class Main {  
    public static void main(String[] args) {  
        // 创建一个LocalDate对象,表示当前日期  
        LocalDate today = LocalDate.now();  
        System.out.println("当前日期: "   today);  
  
        // 获取年份  
        int year = today.getYear();  
        System.out.println("年份: "   year);  
  
        // 获取月份  
        int month = today.getMonthValue();  
        System.out.println("月份: "   month);  
  
        // 获取日期(天数)  
        int day = today.getDayOfMonth();  
        System.out.println("日期: "   day);  
  
        // 创建一个DateTimeFormatter对象,用于格式化LocalDate对象  
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");  
  
        // 使用formatter对象将LocalDate对象格式化为字符串  
        String formattedDate = today.format(formatter);  
        System.out.println("格式化后的日期: "   formattedDate);  
    }  
}

三、LocalTime类

LocalTime类表示一个具体的时刻,不包含日期信息。以下是一些常用的LocalTime方法:

  1. int getHour()、int getMinute()、int getSecond()、int getNano():分别获取小时、分钟、秒和纳秒。
  2. LocalTime plusHours(long hours)、minusHours(long hours):分别表示在原时刻上加上或减去指定小时数。
  3. LocalTime plusMinutes(long minutes)、minusMinutes(long minutes):分别表示在原时刻上加上或减去指定分钟数。
  4. LocalTime plusSeconds(long seconds)、minusSeconds(long seconds):分别表示在原时刻上加上或减去指定秒数。
  5. LocalTime plusNanos(long nanos)、minusNanos(long nanos):分别表示在原时刻上加上或减去指定纳秒数。
  6. boolean isBefore(LocalTime other)、boolean isAfter(LocalTime other)、booleanequals(LocalTime other):分别判断当前时刻是否在另一个时刻之前、之后或相等。
  7. String format(DateTimeFormatter formatter):将LocalTime格式化为指定格式的字符串。
  8. LocalTime parse(CharSequence text, DateTimeFormatter formatter):将指定格式的字符串解析为LocalTime。

代码案例:

代码语言:javascript复制
import java.time.LocalTime;  
  
public class Main {  
    public static void main(String[] args) {  
        // 创建一个LocalTime对象  
        LocalTime now = LocalTime.now();  
        System.out.println("当前时间是: "   now);  
  
        // 获取小时  
        int hour = now.getHour();  
        System.out.println("小时: "   hour);  
  
        // 获取分钟  
        int minute = now.getMinute();  
        System.out.println("分钟: "   minute);  
  
        // 获取秒  
        int second = now.getSecond();  
        System.out.println("秒: "   second);  
    }  
}

四、LocalDateTime类

LocalDateTime类表示一个具体的日期和时间,包含年、月、日、时、分、秒和纳秒信息。以下是一些常用的LocalDateTime方法:

  1. int getYear()、int getMonthValue()、int getDayOfMonth()、int getHour()、int getMinute()、int getSecond()、int getNano():分别获取年、月、日、时、分、秒和纳秒。
  2. LocalDateTime plusDays(long days)、minusDays(long days):分别表示在原日期时间上加上或减去指定天数。
  3. LocalDateTime plusMonths(long months)、minusMonths(long months):分别表示在原日期时间上加上或减去指定月数。
  4. LocalDateTime plusYears(long years)、minusYears(long years):分别表示在原日期时间上加上或减去指定年数。
  5. LocalDateTime plusHours(long hours)、minusHours(long hours):分别表示在原日期时间上加上或减去指定小时数。
  6. LocalDateTime plusMinutes(long minutes)、minusMinutes(long minutes):分别表示在原日期时间上加上或减去指定分钟数。
  7. LocalDateTime plusSeconds(long seconds)、minusSeconds(long seconds):分别表示在原日期时间上加上或减去指定秒数。
  8. LocalDateTime plusNanos(long nanos)、minusNanos(long nanos):分别表示在原日期时间上加上或减去指定纳秒数。
  9. boolean isBefore(LocalDateTime other)、boolean isAfter(LocalDateTime other)、booleanequals(LocalDateTime other):分别判断当前日期时间是否在另一个日期时间之前、之后或相等。
  10. String format(DateTimeFormatter formatter):将LocalDateTime格式化为指定格式的字符串。
  11. ZonedDateTime toZonedDateTime()、LocalTime toLocalTime():分别将LocalDateTime转换为ZonedDateTime或LocalTime。
  12. String toString(): 将LocalDateTime格式化为字符串。
  13. LocalDateTime parse(CharSequence text, DateTimeFormatter formatter):将指定格式的字符串解析为LocalDateTime。

示例代码:

代码语言:javascript复制
import java.time.LocalDateTime;  
  
public class Main {  
    public static void main(String[] args) {  
        // 创建一个LocalDateTime对象  
        LocalDateTime now = LocalDateTime.now();  
        System.out.println("当前时间是: "   now);  
  
        // 获取年份  
        int year = now.getYear();  
        System.out.println("年份: "   year);  
  
        // 获取月份  
        int month = now.getMonth().getValue();  
        System.out.println("月份: "   month);  
  
        // 获取日期  
        int day = now.getDayOfMonth();  
        System.out.println("日期: "   day);  
  
        // 获取小时  
        int hour = now.getHour();  
        System.out.println("小时: "   hour);  
  
        // 获取分钟  
        int minute = now.getMinute();  
        System.out.println("分钟: "   minute);  
  
        // 获取秒  
        int second = now.getSecond();  
        System.out.println("秒: "   second);  
    }  
}

五、DateTimeFormatter类

DateTimeFormatter类是用于格式化和解析日期时间的类。以下是一些常用的DateTimeFormatter方法:

  1. DateTimeFormatterBuilder builder():创建一个新的DateTimeFormatterBuilder对象,用于构建DateTimeFormatter对象。
  2. DateTimeFormatter ofPattern(String pattern):根据指定的模式创建DateTimeFormatter对象。
  3. String format(TemporalAccessor temporal):将TemporalAccessor对象格式化为指定格式的字符串。
  4. TemporalAccessor parse(CharSequence text):将指定格式的字符串解析为TemporalAccessor对象。

示例代码:

代码语言:javascript复制
import java.time.LocalDateTime;  
import java.time.format.DateTimeFormatter;  
  
public class Main {  
    public static void main(String[] args) {  
        // 创建一个LocalDateTime对象  
        LocalDateTime now = LocalDateTime.now();  
        System.out.println("当前时间是: "   now);  
  
        // 创建一个DateTimeFormatter对象,用于格式化LocalDateTime对象  
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");  
  
        // 使用formatter对象将LocalDateTime对象格式化为字符串  
        String formattedDateTime = now.format(formatter);  
        System.out.println("格式化后的日期时间: "   formattedDateTime);  
    }  
}

六、Math类

Math类是Java标准库中的一个类,包含了一些常用的数学函数和常量。以下是一些常用的Math类方法和常量:

  1. double abs(double a):返回一个数的绝对值。
  2. double ceil(double a):返回一个数的向上取整。
  3. double floor(double a):返回一个数的向下取整。
  4. double rint(double a):返回一个数的四舍五入取整。
  5. double round(double a):返回一个数的四舍五入取整,转换为最接近的整数。
  6. double sqrt(double a):返回一个数的平方根。
  7. double cos(double a):返回一个数的余弦值。
  8. double sin(double a):返回一个数的正弦值。
  9. double tan(double a):返回一个数的正切值。
  10. double acos(double a):返回一个数的反余弦值。
  11. double asin(double a):返回一个数的反正弦值。
  12. double atan(double a):返回一个数的反正切值。
  13. double exp(double a):返回自然数e的a次方。
  14. double log(double a):返回一个数的自然对数。
  15. double log10(double a):返回一个数的底为10的对数。
  16. double pow(double base, double exponent):返回base的exponent次方。
  17. double random():返回一个随机数。
  18. double E、double PI:分别表示自然数e和圆周率π的近似值。

示例代码:

代码语言:javascript复制
import java.lang.Math;  
  
double absValue = Math.abs(-10.5); // 10.5  
double ceilValue = Math.ceil(10.4); // 11  
double floorValue = Math.floor(10.6); // 10  
double rintValue = Math.rint(10.8); // 10  
double roundValue = Math.round(10.5); // 11  
double sqrtValue = Math.sqrt(25); // 5  
double cosValue = Math.cos(Math.PI/2); // 0  
double sinValue = Math.sin(Math.PI/2); // 1  
double tanValue = Math.tan(Math.PI/4); // 1

七、Comparable接口

Comparable接口是Java语言中的一个泛型接口,用于实现对象的自然排序。实现Comparable接口的类需要重写compareTo()方法,该方法接受一个参数,表示要比较的另一个对象,返回一个整数值表示比较结果。

示例代码:

代码语言:javascript复制
public class Student implements Comparable<Student> {  
    private String name;  
    private int age;  
  
    public Student(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    @Override  
    public int compareTo(Student other) {  
        return this.age - other.age; // 按年龄排序  
    }  
}

八、Comparator接口

Comparator接口是Java语言中的一个函数式接口,用于实现对象的自定义排序。实现Comparator接口的类需要重写compare()方法,该方法接受两个参数,表示要比较的两个对象,返回一个整数值表示比较结果。

示例代码:

代码语言:javascript复制
import java.util.Comparator;  
  
public class StudentComparator implements Comparator<Student> {  
    @Override  
    public int compare(Student s1, Student s2) {  
        return s1.getName().compareTo(s2.getName()); // 按姓名排序  
    }  
}

总结

代码语言:txt复制
   本讲主要是一个关于Java中的日期和时间类以及Comparable和Comparator接口的详细概述。介绍了LocalDate、LocalTime、LocalDateTime、DateTimeFormatter类以及它们的主要方法和使用。此外,还介绍了Math类和它的常用方法和常量,以及如何使用Comparable和Comparator接口来实现对象的排序。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

0 人点赞