前言
代码语言:txt复制 本文主要也是介绍了Java语言中常用的类及其常用方法,包括String、LocalDate、LocalTime、LocalDateTime、DateTimeFormatter、Math类、Comparable接口和Comparator接口。通过对这些类和方法的学习,可以更好地理解和应用Java语言的基础知识,这些类在实际开发中也是用的很频繁,提高编程效率和质量。
一、String类
String类是Java语言中最常用的类之一,它表示字符串。以下是一些常用的String方法:
- char charAt(int index):返回指定索引位置的字符。
- int length():返回字符串的长度。
- String substring(int beginIndex, int endIndex):返回从beginIndex到endIndex(不包括endIndex)之间的子字符串。
- boolean equals(Object obj):比较两个字符串的内容是否相同。
- boolean contains(CharSequence s):判断字符串是否包含指定的CharSequence。
- int indexOf(int ch) 和 int indexOf(String substring):分别返回指定字符或子字符串在字符串中第一次出现的位置索引。
- String toUpperCase() 和 String toLowerCase():分别将字符串转换为大写和小写形式。
- String replace(char oldChar, char newChar):将字符串中的所有oldChar替换为newChar。
- 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方法:
- int getYear()、int getMonthValue()、int getDayOfMonth():分别获取年份、月份和日期。
- LocalDate plusDays(long days)、minusDays(long days):分别表示在原日期上加上或减去指定天数。
- LocalDate plusMonths(long months)、minusMonths(long months):分别表示在原日期上加上或减去指定月数。
- LocalDate plusYears(long years)、minusYears(long years):分别表示在原日期上加上或减去指定年数。
- boolean isLeapYear():判断是否是闰年。
- int lengthOfMonth()、int lengthOfYear():分别获取当前月份的天数和当前年份的天数。
- ZonedDateTime toZonedDateTime()、LocalTime toLocalTime():分别将LocalDate转换为ZonedDateTime或LocalTime。
- String format(DateTimeFormatter formatter):将LocalDate格式化为指定格式的字符串。
- 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方法:
- int getHour()、int getMinute()、int getSecond()、int getNano():分别获取小时、分钟、秒和纳秒。
- LocalTime plusHours(long hours)、minusHours(long hours):分别表示在原时刻上加上或减去指定小时数。
- LocalTime plusMinutes(long minutes)、minusMinutes(long minutes):分别表示在原时刻上加上或减去指定分钟数。
- LocalTime plusSeconds(long seconds)、minusSeconds(long seconds):分别表示在原时刻上加上或减去指定秒数。
- LocalTime plusNanos(long nanos)、minusNanos(long nanos):分别表示在原时刻上加上或减去指定纳秒数。
- boolean isBefore(LocalTime other)、boolean isAfter(LocalTime other)、booleanequals(LocalTime other):分别判断当前时刻是否在另一个时刻之前、之后或相等。
- String format(DateTimeFormatter formatter):将LocalTime格式化为指定格式的字符串。
- 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方法:
- int getYear()、int getMonthValue()、int getDayOfMonth()、int getHour()、int getMinute()、int getSecond()、int getNano():分别获取年、月、日、时、分、秒和纳秒。
- LocalDateTime plusDays(long days)、minusDays(long days):分别表示在原日期时间上加上或减去指定天数。
- LocalDateTime plusMonths(long months)、minusMonths(long months):分别表示在原日期时间上加上或减去指定月数。
- LocalDateTime plusYears(long years)、minusYears(long years):分别表示在原日期时间上加上或减去指定年数。
- LocalDateTime plusHours(long hours)、minusHours(long hours):分别表示在原日期时间上加上或减去指定小时数。
- LocalDateTime plusMinutes(long minutes)、minusMinutes(long minutes):分别表示在原日期时间上加上或减去指定分钟数。
- LocalDateTime plusSeconds(long seconds)、minusSeconds(long seconds):分别表示在原日期时间上加上或减去指定秒数。
- LocalDateTime plusNanos(long nanos)、minusNanos(long nanos):分别表示在原日期时间上加上或减去指定纳秒数。
- boolean isBefore(LocalDateTime other)、boolean isAfter(LocalDateTime other)、booleanequals(LocalDateTime other):分别判断当前日期时间是否在另一个日期时间之前、之后或相等。
- String format(DateTimeFormatter formatter):将LocalDateTime格式化为指定格式的字符串。
- ZonedDateTime toZonedDateTime()、LocalTime toLocalTime():分别将LocalDateTime转换为ZonedDateTime或LocalTime。
- String toString(): 将LocalDateTime格式化为字符串。
- 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方法:
- DateTimeFormatterBuilder builder():创建一个新的DateTimeFormatterBuilder对象,用于构建DateTimeFormatter对象。
- DateTimeFormatter ofPattern(String pattern):根据指定的模式创建DateTimeFormatter对象。
- String format(TemporalAccessor temporal):将TemporalAccessor对象格式化为指定格式的字符串。
- 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类方法和常量:
- double abs(double a):返回一个数的绝对值。
- double ceil(double a):返回一个数的向上取整。
- double floor(double a):返回一个数的向下取整。
- double rint(double a):返回一个数的四舍五入取整。
- double round(double a):返回一个数的四舍五入取整,转换为最接近的整数。
- double sqrt(double a):返回一个数的平方根。
- double cos(double a):返回一个数的余弦值。
- double sin(double a):返回一个数的正弦值。
- double tan(double a):返回一个数的正切值。
- double acos(double a):返回一个数的反余弦值。
- double asin(double a):返回一个数的反正弦值。
- double atan(double a):返回一个数的反正切值。
- double exp(double a):返回自然数e的a次方。
- double log(double a):返回一个数的自然对数。
- double log10(double a):返回一个数的底为10的对数。
- double pow(double base, double exponent):返回base的exponent次方。
- double random():返回一个随机数。
- 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腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表