蓝桥杯JAVA-10.常用类及其常用方法

本文最后更新于:January 20, 2022 am

积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。

目录

Math类(数学、计算相关)

使用方法:Math.方法名()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//Java中已有的E、和PI的值
public static final double E = 2.7182818284590452354;
public static final double PI = 3.14159265358979323846;

static Object abs(Object o) //返回值为 Object 的绝对值
static Object min(Object a, Object b) //返回两个 Object的较小值
static Object max(Object a, Object b) //返回两个 Object的较大值
static double ceil(double a) //向上取整。返回大于等于参数的最小 double值
static double floor(double a) //向下取整。返回小于等于参数的最大 double值
static double pow(double a, double b) //将第一个参数的值返回到第二个参数的幂。
static double sqrt(double a) //返回的正确舍入正平方根 double值。


//了解
static double toDegrees(double angrad) //将以弧度测量的角度转换为以度为单位的近似等效角度。
static double toRadians(double angdeg) //将以度为单位的角度转换为以弧度测量的大致相等的角度。
static double tan(double a) //返回角度的三角正切。
static double tanh(double x) //返回的双曲正切 double值。
static double sin(double a) //返回角度的三角正弦。
static double sinh(double x) //返回的双曲正弦 double值。
static double cos(double a) //返回角度的三角余弦。
static double cosh(double x) //返回的双曲余弦 double值。
static double acos(double a) //返回值的反余弦值; 返回的角度在0.0到pi的范围内。
static double asin(double a) //返回值的正弦值; 返回角度在pi / 2到pi / 2的范围内。
static double atan(double a) //返回值的反正切值; 返回角度在pi / 2到pi / 2的范围内。
static double rint(double a) //返回与参数最接近值的 double值,并且等于数学整数,等同于floor。
static long round(double a) //返回参数中最接近的 long ,其中 long四舍五入为正无穷大。等同于将参数四舍五入处理。下同。
static int round(float a) //返回参数中最接近的 int ,其中 int四舍五入为正无穷大。

static Object floorDiv(Object x, Object y) //返回小于等于x/y的商的最大 Object值。(Object为int或long)
static Object floorMod(Object x, Object y) //取模。返回 int参数的底部模数。但和平常的取余有所差别。见解释一(Object为int或long)
static double hypot(double x, double y) //返回sqrt( x^2 + y^2 ),没有中间溢出或下溢。

解释

  1. 这里的取模和我们平常的取余有一定的区别。如果两个数符号相同的话,取模和取余结果是一样的,如果两个数字符号不相同的话,那么取模和取余结果那就是天差地别了。注意一点:取余的时候符号和被除数保持一致,取模的时候符合和除数保持一致。注意:Java 中的取余运算是 %,而取模运算是 Math.floorMod()。具体详细的解释可以自行找API查看。

String类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int	length() //返回此字符串的长度。
boolean isEmpty() //仅当 length()为 0返回 true。
boolean isBlank() //判断是否只包含空白字符(空格),是则返回 true。需要与判断为空区别开
char charAt(int index) //返回指定索引处的char值。
int compareTo(String str) //按字典顺序比较两个字符串。前一个字符串大于后一个字符串则返回正数,否则返回负数;字符串相等,结果为零。他们的返回值是用的不等的字符处的ASCII码相减作为返回值。
String concat(String str) //将参数字符串连接到该字符串的末尾。
boolean contains(CharSequence s) //当且仅当此字符串包含指定的char值序列时才返回true。可以简单的将CharSequence看成是String类型即可。传入String类型的字符串即可。

boolean equals(Object anObject) //将此字符串与指定对象进行比较。
boolean startsWith(String prefix) //测试此字符串是否以指定的前缀开头。
boolean startsWith(String prefix, int toffset) //测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。
boolean endsWith(String suffix) //测试此字符串是否以指定的后缀结尾。
static String format(String format, Object... args) //使用指定的格式字符串和参数返回格式化的字符串。可以用来控制输出,如:System.out.println(String.format("%d %c", a,ch));

int indexOf(int ch) //返回指定字符第一次出现的字符串内的索引。参数也可以是String类型
int indexOf(int ch, int fromIndex) //返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。参数也可以是String类型
int lastIndexOf(int ch) //返回指定字符的最后一次出现的字符串中的索引。具体用法同indexOf
int lastIndexOf(int ch, int fromIndex) //返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索。具体用法同indexOf

String replace(char oldChar, char newChar) //用newChar替换所有出现的oldChar字符串,并返回新的字符串。可以是单个字符。
String replaceFirst(String regex, String replacement) //只替换第一个匹配到的

String[] split(String regex) //将此字符串分割,用给定的regex的匹配。可以是正则表达式也可以是字符串
String[] split(String regex, int limit) //只分成limit个String,后面的不再分割。

CharSequence subSequence(int beginIndex, int endIndex) //返回一个子字符序列。不包括endindex
String substring(int beginIndex) //返回一个字符串,该字符串是此字符串的子字符串。
String substring(int beginIndex, int endIndex) //返回一个字符串,该字符串是此字符串的子字符串。
char[] toCharArray() //将此字符串转换为新的字符数组。

String toLowerCase() //将字符串全部转换为小写
String toUpperCase() //将字符串全部转换为大写
String trim() //返回一个字符串,并删除任何前导和尾随空格。

static String valueOf(Object obj) //将Object类型转换为String并返回。
static String valueOf(char[] data, int offset, int count) //返回 char数组参数的特定子阵列转换为字符串。

//了解即可
boolean contentEquals(CharSequence cs) //将此字符串与指定的CharSequence进行 CharSequence,char值序列相同返回true,否则返回false 。可以简单看成是比较字符串。

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) //将此字符串中的字符复制到目标字符数组中。srcBegin - 要复制的字符串中第一个字符的索引。srcEnd - 要复制的字符串中最后一个字符后面的索引。dst - 目标数组。dstBegin - 目标数组中的起始偏移量。

int codePointAt(int index) //返回指定索引处的字符的AScii码
int codePointBefore(int index) //返回指定索引之前的字符ASCII码。
boolean matches(String regex) //告诉这个字符串是否匹配给定的 regular expression 。

StringBuilder类

用法也可以用于StringBuffer。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//构造方法
StringBuilder() //构造一个没有字符的字符串构建器,初始容量为16个字符。
StringBuilder(CharSequence seq) //构造一个包含与指定的相同字符的字符串构建器 CharSequence 。
StringBuilder(int capacity) //构造一个没有字符的字符串构建器,由 capacity参数指定的初始容量。
StringBuilder(String str) //构造一个初始化为指定字符串内容的字符串构建器。


int capacity() //返回当前容量。总大小。
int length() //返回长度(字符数)。实际大小。
StringBuilder append(Object o) //将指定 Object类型加入这个序列。
char charAt(int index) //返回指定索引的序列值。
StringBuilder delete(int start, int end) //删除此序列的子字符串中的字符。
StringBuilder deleteCharAt(int index) //删除 char在这个序列中的指定位置。


StringBuilder insert(int offset, Object o) //在此序列的指定位置插入 Object类型的o。
StringBuilder insert(int index, char[] str, int offset, int len) //在此序列中插入 str数组参数的子阵列的字符串表示形式。
StringBuilder insert(int dstOffset, CharSequence s, int start, int end) //将指定的CharSequence的子 CharSequence插入到此序列中。

StringBuilder reverse() //导致该字符序列被序列的相反代替。
void setCharAt(int index, char ch) //指定索引处的字符设置为 ch 。
void setLength(int newLength) //设置字符序列的长度。
String toString() //返回表示此顺序中的数据的字符串。



//以下用法同String中一样
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
int indexOf(String str)
int indexOf(String str, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)
StringBuilder replace(int start, int end, String str) //用指定的String中的字符替换此序列的子字符串中的 String 。
CharSequence subSequence(int start, int end) //返回一个新的字符序列,该序列是该序列的子序列。
String substring(int start) //返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。
String substring(int start, int end) //返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。

Character类

使用方法:Character.方法名()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//构造方法
Character(char value) //构造一个新分配的 Character对象,代表指定的 char值。

static int compare(char x, char y) //数值比较两个 char数值。
static int digit(char ch, int radix) //返回指定基数中字符 ch的数值。

static boolean isDigit(char ch) //确定指定的字符是否是数字。
static boolean isDigit(int codePoint) //确定指定的字符(Unicode代码点)是否为数字。

static boolean isLetter(char ch) //确定指定的字符是否是一个字母。
static boolean isLetter(int codePoint) //确定指定的字符(Unicode代码点)是否是一个字母。
static boolean isLetterOrDigit(char ch) //确定指定的字符是字母或数字。

static boolean isLowerCase(char ch) //确定指定的字符是否是小写字符。
static boolean isLowerCase(int codePoint) //确定指定的字符(Unicode代码点)是否是小写字符。
static boolean isUpperCase(char ch) //确定指定的字符是否为大写字符。
static boolean isUpperCase(int codePoint) //确定指定的字符(Unicode代码点)是否为大写字符。
static boolean isWhitespace(char ch) //根据Java确定指定的字符是否为空格。
static boolean isWhitespace(int codePoint) //根据Java确定指定字符(Unicode代码点)是否为空格。
static boolean isSpaceChar(char ch) //确定指定的字符是否是Unicode空格字符。
static boolean isSpaceChar(int codePoint) //确定指定字符(Unicode代码点)是否为Unicode空格字符。

String toString() //返回 String表示此对象 Character的价值。
static String toString(char c) //返回一个 String对象,表示指定的 char 。
static char toLowerCase(char ch) //将字符参数转换为小写。
static int toLowerCase(int codePoint) //将字符(Unicode代码点)参数转换为小写。
static char toUpperCase(char ch) //将字符参数转换为大写。
static int toUpperCase(int codePoint) //将字符(Unicode代码点)参数转换为大写。

Arrays类(数组处理)

使用方法:Arrays.方法名()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void	sort(Object[] a) //按照数字顺序排列指定的数组。
static void sort(Object[] a, int fromIndex, int toIndex) //按升序排列数组的指定范围。

static int binarySearch(Object[] a, Object key) //使用二分查找指定元素的下标并返回,若不存在返回负值。
static int binarySearch(Object[] a, int fromIndex, int toIndex, Object key) //在指定范围内使用二分查找
static Object[] copyOf(Object[] original, int newLength) //复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。
static Object[] copyOfRange(Object[] original, int from, int to) //将指定数组的指定范围复制到新数组中。不包括后者。
static boolean equals(Object[] a, Object[] a2) //如果两个指定的对象数组彼此相等,则返回 true 。

static void fill(Object[] a, Object val) //将指定的对象引用分配给指定的对象数组的每个元素。
static void fill(Object[] a, int fromIndex, int toIndex, Object val) //将指定的对象引用分配给指定的对象数组的指定范围的每个元素。


//了解
static void parallelPrefix(Object[] array, IntBinaryOperator op) //使用提供的功能,并行地计算给定阵列的每个元素。op的用法见解释一。可以实现求前缀和。
static void parallelPrefix(Object[] array, int fromIndex, int toIndex, IntBinaryOperator op) //对于数组的给定子范围执行 parallelPrefix(Object[], IntBinaryOperator) 。不包括后者。

static void parallelSort(Object[] a) //按照数字顺序排列指定的数组。排序。
static void parallelSort(Object[] a, int fromIndex, int toIndex) //按照数字顺序排列数组的指定范围。

static String toString(Object[] a) //返回指定数组的内容的字符串表示形式。

解释

  1. Arrays.parallelPrefix(a, (left, right)-> left + right); 表示将a数组中的元素求一个前缀和。Arrays.parallelPrefix(a, (left, right)-> left * right);表示将a数组中的元素求一个前缀乘积(随便取的名,自行理解)。

Collections类(集合处理)

使用方法:Collections.方法名()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static <T extends Comparable<? super T>> void sort(List<T> list) //对指定的列表进行排序。
static <T> void sort(List<T> list, Comparator<? super T> c) //根据指定的比较器引起的顺序对指定的列表进行排序。
static void swap(List<?> list, int i, int j) //交换指定列表中指定位置的元素。
static <T> Comparator<T> reverseOrder() //返回一个比较器,它对实现 Comparable接口的对象集合施加了自然排序的相反(降序)。
static void reverse(List<?> list) //反转指定列表中元素的顺序。
static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) //将列表中一个指定值的所有出现替换为另一个新值。

static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) //二分查找集合。

static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll) //根据其元素的 自然顺序返回给定集合的最小元素。
static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp) //根据指定的比较器引发的顺序返回给定集合的最小元素。
static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) //根据其元素的 自然顺序返回给定集合的最大元素。
static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) //根据指定的比较器引发的顺序返回给定集合的最大元素。

static int indexOfSubList(List<?> source, List<?> target) //返回指定源列表中指定目标列表的第一次出现的起始位置,如果没有,则返回-1。
static int lastIndexOfSubList(List<?> source, List<?> target) //返回指定源列表中指定目标列表的最后一次出现的起始位置,如果没有则返回-1。

static int frequency(Collection<?> c, Object o) //返回指定集合中与指定对象相等的元素数。
static <T> void fill(List<? super T> list, T obj) //用指定的元素代替指定列表的所有元素。
static <T> void copy(List<? super T> dest, List<? extends T> src) //将所有元素从一个列表复制到另一个列表中。

static <T> boolean addAll(Collection<T> c, T element1,T element2 ...) //将所有指定的元素添加到指定的集合。

时间类

更多具体详细用法见:蓝桥杯JAVA-8.日期时间处理详解

Date

1
2
3
4
5
boolean	after(Date when) //测试此日期是否严格在指定日期之后(晚于when)。
boolean before(Date when) //测试此日期是否在指定日期之前。
int compareTo(Date anotherDate) //比较两个日期。如果参数Date等于此Date,则值为0 ; 如果此日期在Date参数之前,该值小于0 ; 如果此日期在Date参数0则值大于0 。
boolean equals(Object obj) //比较两个日期。比较两个日期来平等。 结果是true当且仅当参数不是null ,并且是一个Date对象,表示与该对象相同的时间点(毫秒)。
String toString() //将此 Date对象转换为 String的形式:

DateFormat类

1
2
3
4
5
6
Date parse(String source) //从给定字符串的开始解析文本以生成日期。
abstract Date parse(String source, ParsePosition pos) //根据给定的解析位置解析日期/时间字符串。
void setCalendar(Calendar newCalendar) //将日历设置为使用此日期格式。
void setTimeZone(TimeZone zone) //设置此 DateFormat对象的日历的时区。
TimeZone getTimeZone() //获取时区。
String format(Date date) //将日期格式化成日期/时间字符串。

SimpleDateFormat类

是DateFormat类的子类。

1
2
3
4
5
//构造方法
SimpleDateFormat() //构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
SimpleDateFormat(String pattern) //使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) //使用给定的模式和日期格式符号构造一个 SimpleDateFormat 。
SimpleDateFormat(String pattern, Locale locale) //构造一个 SimpleDateFormat使用给定的模式和给定的区域设置的默认日期格式符号。

Calendar类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
boolean	after(Object when) //返回 Calendar是否 Calendar指定时间之后的时间 Object 。
boolean before(Object when) //返回此 Calendar是否 Calendar指定的时间之前指定的时间 Object 。
void set(int field, int value) //将给定的日历字段设置为给定的值。
void set(int year, int month, int date) //设置日历字段中的值 YEAR , MONTH和 DAY_OF_MONTH 。
void set(int year, int month, int date, int hourOfDay, int minute, int second) //设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
void setFirstDayOfWeek(int value) //设置一周的第一天是什么? 例如, SUNDAY在美国, MONDAY在法国。
void setMinimalDaysInFirstWeek(int value) //设定一年中第一个星期所需的最短时间是多少? 例如,如果第一周被定义为包含一年中第一个月的第一天的第一周,请调用此值为1的方法。
void setTime(Date date) //使用给定的 Date设置此日历的时间。
void setTimeInMillis(long millis) //从给定的长值设置此日历的当前时间。
void setTimeZone(TimeZone value) //以给定的时区值设置时区。
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) //设置这个 Calendar的日期与给定的日期说明符 - 周年,年周和星期几。

Date getTime() //返回一个 Date表示此物体 Calendar的时间值(毫秒从偏移 Epoch “)。
long getTimeInMillis() //以毫秒为单位返回此日历的时间值。
TimeZone getTimeZone() //获取时区。
int getWeeksInWeekYear() //返回由这个 Calendar表示的星期内的星期 Calendar 。
int getWeekYear() //返回这个 Calendar 。
String getCalendarType() //返回此 Calendar的日历类型。
String getDisplayName(int field, int style, Locale locale) //返回给定的 style和 locale中的日历 field的字符串表示 locale 。
Map<String,Integer> getDisplayNames(int field, int style, Locale locale) //返回 Map包含日历的所有名称 field在给定 style和 locale及其相应的字段值。
int getFirstDayOfWeek() //得到一周的第一天是什么 例如, SUNDAY在美国, MONDAY在法国。

Instant toInstant() //将此对象转换为Instant 。
String toString() //返回此日历的字符串表示形式。
int get(int field) //返回给定日历字段的值。

日期时间常用操作

  1. 指定格式输出
1
2
3
4
5
6
7
8
String tm = "2021年7月13日";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");//用来解析字符串
Date date = sdf.parse(tm);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd"); //按照格式输出时间字符串
System.out.printf(sdf2.format(date));

//输出
2021/07/13
  1. 时间位置
1
2
3
4
5
6
7
8
9
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒SSS毫秒");
System.out.println(sdf.format(date));
SimpleDateFormat sdf2 = new SimpleDateFormat("E 一年中第w周的第D天 一个月中的第W周的周F 一天中的24制的第k小时(点)12制的第K小时(点)");
System.out.println(sdf2.format(date));

//输出
20211214145359997毫秒
星期二 一年中第51周的第348天 一个月中的第3周的周2 一天中的24制的第14小时(点)12制的第2小时(点)
  1. 日期加减
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static void main(String[] args) {
Calendar c1 = Calendar.getInstance();
c1.set(2021, 1, 1);
System.out.println(c1.get(Calendar.YEAR)
+"-"+c1.get(Calendar.MONTH)
+"-"+c1.get(Calendar.DATE));
c1.set(2021, 1, 0);
System.out.println(c1.get(Calendar.YEAR)
+"-"+c1.get(Calendar.MONTH)
+"-"+c1.get(Calendar.DATE));
}

//输出
2021-1-1 //实际为2021-2-1
2021-0-31 //实际为2021-1-31

具体原理和具体使用方法见,蓝桥杯JAVA-8.日期时间处理详解

BigInteger类(大整数)

更多具体详细用法见:蓝桥杯JAVA-6.大数(整数、小数)处理

BigDecimal类(大浮点数)

更多具体详细用法见:蓝桥杯JAVA-6.大数(整数、小数)处理