Roc Lau
于 2023-05-29 19:58:15 发布
阅读量359
收藏 1
点赞数
分类专栏: 开发工具类 文章标签: apache java 开发语言
版权
开发工具类
专栏收录该内容
12 篇文章0 订阅
订阅专栏
常用工具栏归纳,如下所有都是静态方法,可以直接调用,更多详细内容,参考官网。
工具类 描述 示例
org.apache.commons.lang3.ObjectUtils 对象工具类 ObjectUtils.isNotEmpty(new int[]{}) = false
org.apache.commons.lang3.math.NumberUtils 数值工具类 NumberUtils.toInt(null) = 0,NumberUtils.toInt(“1”) = 1
org.apache.commons.lang3.ArrayUtils 数组工具类 ArrayUtils.remove([1, 0], 1) = [1]
org.apache.commons.lang3.BooleanUtils 布尔工具类 BooleanUtils.toInteger(true) = 1,BooleanUtils.toBoolean(1) = Boolean.TRUE
org.apache.commons.lang3.RandomStringUtils 随机字符串工具类 RandomStringUtils.randomAlphabetic(10) = “CtDdCZEldF”,RandomStringUtils.randomGraph(10) = #vdP\eCl@F
org.apache.commons.lang3.RandomUtils 随机数值工具类 RandomUtils.nextBoolean(),RandomUtils.nextInt(100,1000)
org.apache.commons.lang3.SystemUtils 系统工具类 SystemUtils.getUserHome() = “C:\Users\Think”
org.apache.commons.lang3.time.DateFormatUtils 日期格式化工具类,将日期转为指定格式的字符串 DateFormatUtils.format(new Date(),“yyyy-MM-dd HH:mm:dd”) = “2019-11-11 11:11:11”
org.apache.commons.lang3.time.DateUtils 日期工具类,将指定格式的字符串转为日期 DateUtils.parseDate(“1993-09-08 14:30:08”,“yyyy-MM-dd HH:mm:dd”)
StringUtils 工具类方法汇总
方法 描述/举例
//判断目标字符串为空或者为null,空格也当作为空isBlank(CharSequence cs) StringUtils.isBlank(" “) = true StringUtils.isBlank(“bob”) = false StringUtils.isBlank(” bob ") = false StringUtils.isBlank(null) = true StringUtils.isBlank(“”) = true
判断目标字符串不为空且不为null,空格也当作为空isNotBlank(CharSequence cs) StringUtils.isNotBlank(null) = false StringUtils.isNotBlank(“”) = false StringUtils.isNotBlank(" “) = false StringUtils.isNotBlank(“bob”) = true StringUtils.isNotBlank(” bob ") = true
判断目标字符串为空或者为null,空格不当作为空isEmpty(CharSequence cs) StringUtils.isEmpty(null) = true StringUtils.isEmpty(“”) = true StringUtils.isEmpty(" “) = false StringUtils.isEmpty(“bob”) = false StringUtils.isEmpty(” bob ") = false
判断目标字符串不为空且不为null,空格不当作为空isNotEmpty(CharSequence cs) StringUtils.isNotEmpty(null) = false StringUtils.isNotEmpty(“”) = false StringUtils.isNotEmpty(" “) = true StringUtils.isNotEmpty(“bob”) = true StringUtils.isNotEmpty(” bob ") = true
判断字符串是否是数字,不忽略空格isNumeric(CharSequence cs) StringUtils.isNumeric(null) = false StringUtils.isNumeric(“”) = false StringUtils.isNumeric(" “) = false StringUtils.isNumeric(“123”) = true StringUtils.isNumeric(”\u0967\u0968\u0969") = trueStringUtils.isNumeric(“09”) = true StringUtils.isNumeric(“12 3”) = false StringUtils.isNumeric(“ab2c”) = false StringUtils.isNumeric(“12-3”) = false StringUtils.isNumeric(“12.3”) = false StringUtils.isNumeric(“-123”) = false StringUtils.isNumeric(“+123”) = false
判断字符串是否是数字,忽略空格isNumericSpace(CharSequence cs) StringUtils.isNumericSpace(null) = false StringUtils.isNumericSpace(“”) = true StringUtils.isNumericSpace(" “) = true StringUtils.isNumericSpace(“123”) = true StringUtils.isNumericSpace(“12 3”) = true StringUtils.isNumeric(”\u0967\u0968\u0969") = trueStringUtils.isNumeric(“\u0967\u0968 \u0969”) = true StringUtils.isNumericSpace(“ab2c”) = false StringUtils.isNumericSpace(“12-3”) = false StringUtils.isNumericSpace(“12.3”) = false
判断字符串是否是希腊字母,不忽略空格isAlpha(CharSequence cs) StringUtils.isAlpha(null) = false StringUtils.isAlpha(“”) = false StringUtils.isAlpha(" ") = false StringUtils.isAlpha(“abc”) = true StringUtils.isAlpha(“ab2c”) = false StringUtils.isAlpha(“ab-c”) = false
判断字符串是否是希腊字母,忽略空格isAlphaSpace(CharSequence cs) StringUtils.isAlphaSpace(null) = false StringUtils.isAlphaSpace(“”) = true StringUtils.isAlphaSpace(" ") = true StringUtils.isAlphaSpace(“abc”) = true StringUtils.isAlphaSpace(“ab c”) = true StringUtils.isAlphaSpace(“ab2c”) = false StringUtils.isAlphaSpace(“ab-c”) = false
isAlphanumeric(CharSequence cs) isAlphanumericSpace(CharSequence cs) 判断字符串是否是希腊字母与数字组成,不忽略空格 与 忽略空格 StringUtils.isAlphanumeric(“ab c”) = false StringUtils.isAlphanumericSpace(“ab c”) = true
判断字符串是否全是小写字母isAllLowerCase(CharSequence cs) StringUtils.isAllLowerCase(null) = false StringUtils.isAllLowerCase(“”) = false StringUtils.isAllLowerCase(" ") = false StringUtils.isAllLowerCase(“abc”) = trueStringUtils.isAllLowerCase(“abC”) = false StringUtils.isAllLowerCase(“ab c”) = false StringUtils.isAllLowerCase(“ab1c”) = false StringUtils.isAllLowerCase(“ab/c”) = false
判断字符串是否全大写字母isAllUpperCase(CharSequence cs) StringUtils.isAllUpperCase(null) = false StringUtils.isAllUpperCase(“”) = false StringUtils.isAllUpperCase(" ") = false StringUtils.isAllUpperCase(“ABC”) = trueStringUtils.isAllUpperCase(“aBC”) = false StringUtils.isAllUpperCase(“A C”) = false StringUtils.isAllUpperCase(“A1C”) = false StringUtils.isAllUpperCase(“A/C”) = false
判断源字符串 seq 是否包含字符串 searchSeq。区分大小写contains(CharSequence seq, CharSequence searchSeq) StringUtils.contains(null, ) = false StringUtils.contains(, null) = false StringUtils.contains(“”, “”) = true StringUtils.contains(“abc”, “”) = true StringUtils.contains(“abc”, “a”) = true StringUtils.contains(“abc”, “z”) = false
判断源字符串 seq 是否包含字符 searchChar。区分大小写contains(CharSequence seq, int searchChar) StringUtils.contains(null, *) = false StringUtils.contains(“”, *) = false StringUtils.contains(“abc”, ‘a’) = true StringUtils.contains(“abc”, ‘z’) = false
判断源字符串 seq 是否包含字符串 searchChars。不区分大小写containsAny(CharSequence cs, CharSequence searchChars) StringUtils.containsAny(null, ) = false StringUtils.containsAny(“”, ) = false StringUtils.containsAny(, null) = false StringUtils.containsAny(, “”) = false StringUtils.containsAny(“zzabyycdxx”, “za”) = true StringUtils.containsAny(“zzabyycdxx”, “by”) = trueStringUtils.containsAny(“zzabyycdxx”, “zy”) = true StringUtils.containsAny(“zzabyycdxx”, “\tx”) = true StringUtils.containsAny(“zzabyycdxx”, “$.#yF”) = true StringUtils.containsAny(“aba”, “z”) = false
searchCharSequences 数组中主要有任意一个匹配上就返回 truecontainsAny(CharSequence cs, CharSequence… searchCharSequences) StringUtils.containsAny(null, ) = false StringUtils.containsAny(“”, ) = false StringUtils.containsAny(, null) = false StringUtils.containsAny(, []) = false StringUtils.containsAny(“abcd”, “ab”, null) = true StringUtils.containsAny(“abcd”, “ab”, “cd”) = true StringUtils.containsAny(“abc”, “d”, “abc”) = true
去掉字符串前后空格。为空时返回空,为 null 时返回 null(不是字符串null,防止空指针异常)trim(String str) StringUtils.trim(null) = null StringUtils.trim(“”) = “” StringUtils.trim(" ") = “” StringUtils.trim(“abc”) = “abc” StringUtils.trim(" abc ") = “abc”
去掉字符串前后空格。当为空时,返回 null(不是字符串null,防止空指针异常)trimToNull(String str) StringUtils.trimToNull(null) = null StringUtils.trimToNull(“”) = null StringUtils.trimToNull(" ") = null StringUtils.trimToNull(“abc”) = “abc” StringUtils.trimToNull(" abc ") = “abc”
去掉字符串前后空格。当为 null 时,返回空trimToEmpty(String str) StringUtils.trimToEmpty(null) = “” StringUtils.trimToEmpty(“”) = “” StringUtils.trimToEmpty(" ") = “” StringUtils.trimToEmpty(“abc”) = “abc” StringUtils.trimToEmpty(" abc ") = “abc”
比较两个字符串是否相等,区分大小写equals(CharSequence cs1, CharSequence cs2) StringUtils.equals(null, null) = true StringUtils.equals(null, “abc”) = false StringUtils.equals(“abc”, null) = false StringUtils.equals(“abc”, “abc”) = true StringUtils.equals(“abc”, “ABC”) = false
比较两个字符串是否相等,不区分大小写equalsIgnoreCase(CharSequence cs1, CharSequence cs2) StringUtils.equalsIgnoreCase(null, null) = true StringUtils.equalsIgnoreCase(null, “abc”) = false StringUtils.equalsIgnoreCase(“abc”, null) = false StringUtils.equalsIgnoreCase(“abc”, “abc”) = true StringUtils.equalsIgnoreCase(“abc”, “ABC”) = true
查找 seq 中 searchSeq 第一次出现的索引位置,找不到返回 -1,区分大小写。indexOf(CharSequence seq, CharSequence searchSeq) StringUtils.indexOf(null, ) = -1 StringUtils.indexOf(, null) = -1 StringUtils.indexOf(“”, “”) = 0 StringUtils.indexOf(“”, *) = -1 (except when = “”) StringUtils.indexOf(“aabaabaa”, “a”) = 0 StringUtils.indexOf(“aabaabaa”, “b”) = 2 StringUtils.indexOf(“aabaabaa”, “ab”) = 1 StringUtils.indexOf(“aabaabaa”, “”) =0
从指定位置开始查找indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) StringUtils.indexOf(null, *, ) = -1 StringUtils.indexOf(, null, *) = -1 StringUtils.indexOf(“”, “”, 0) = 0 StringUtils.indexOf(“”, *, 0) = -1 StringUtils.indexOf(“aabaabaa”, “a”, 0) = 0 StringUtils.indexOf(“aabaabaa”, “b”, 0) = 2 StringUtils.indexOf(“aabaabaa”, “ab”, 0) = 1 StringUtils.indexOf(“aabaabaa”, “b”, 3) = 5 StringUtils.indexOf(“aabaabaa”, “b”, 9) = -1 StringUtils.indexOf(“aabaabaa”, “b”, -1) = 2 StringUtils.indexOf(“aabaabaa”, “”, 2) = 2 StringUtils.indexOf(“abc”, “”, 9) = 3
查找数组中任意元素在源字符串中出现的索引位置,满足多个时,取最小值indexOfAny(final CharSequence str, final CharSequence… searchStrs) StringUtils.indexOfAny(null, ) = -1 StringUtils.indexOfAny(, null) = -1 StringUtils.indexOfAny(*, []) = -1 StringUtils.indexOfAny(“zzabyycdxx”, [“ab”, “cd”]) = 2 StringUtils.indexOfAny(“zzabyycdxx”, [“cd”, “ab”]) = 2 StringUtils.indexOfAny(“zzabyycdxx”, [“mn”, “op”]) = -1 StringUtils.indexOfAny(“zzabyycdxx”, [“zab”, “aby”])=1 StringUtils.indexOfAny(“zzabyycdxx”, [“”]) = 0 StringUtils.indexOfAny(“”, [“”]) = 0 StringUtils.indexOfAny(“”, [“a”]) = -1
字符字母转小写lowerCase(final String str) StringUtils.lowerCase(null) = null StringUtils.lowerCase(“”) = “” StringUtils.lowerCase(“aBc”) = “abc”
字符串字母转大写upperCase(final String str) StringUtils.upperCase(null) = null StringUtils.upperCase(“”) = “” StringUtils.upperCase(“aBc”) = “ABC”
对 str 字符串进行省略号缩写,maxWidth 表示长度,必须大于等于4abbreviate(final String str, final int maxWidth) StringUtils.abbreviate(null, *) = null StringUtils.abbreviate(“”, 4) = “” StringUtils.abbreviate(“abcdefg”, 6) = “abc…” StringUtils.abbreviate(“abcdefg”, 7) = “abcdefg” StringUtils.abbreviate(“abcdefg”, 8) = “abcdefg” StringUtils.abbreviate(“abcdefg”, 4) = “a…” StringUtils.abbreviate(“abcdefg”, 3) = IllegalArgumentException
将首字母转大写capitalize(final String str) StringUtils.capitalize(null) = null StringUtils.capitalize(“”) = “” StringUtils.capitalize(“cat”) = “Cat” StringUtils.capitalize(“cAt”) = “CAt” StringUtils.capitalize(“‘cat’”) = “‘cat’”
将 str 前后用空格填充,使总长度达到 size。size 本身小于 str 长度时,不做填充center(final String str, final int size) StringUtils.center(null, *) = null StringUtils.center(“”, 4) = " " StringUtils.center(“ab”, -1) = “ab” StringUtils.center(“ab”, 4) = " ab " StringUtils.center(“abcd”, 2) = “abcd” StringUtils.center(“a”, 4) = " a "
使用指定字符串进行填充center(String str, final int size, String padStr) StringUtils.center(null, *, *) = null StringUtils.center(“”, 4, ’ ') = " " StringUtils.center(“ab”, -1, ’ ') = “ab” StringUtils.center(“ab”, 4, ’ ') = " ab " StringUtils.center(“abcd”, 2, ’ ') = “abcd” StringUtils.center(“a”, 4, ’ ') = " a " StringUtils.center(“a”, 4, ‘y’) = “yayy”
比较字符串 str1 与 str2 的大小。不忽略大小写 与 忽略大小写compare(final String str1, final String str2)compareIgnoreCase(final String str1, final String str2) StringUtils.compare(null, null) = 0 StringUtils.compare(null , “a”) = -1 StringUtils.compare(“a”, null) = 1 StringUtils.compare(“abc”, “abc”) = 0 StringUtils.compare(“a”, “b”) = -1 StringUtils.compare(“b”, “a”) = 1 StringUtils.compare(“a”, “B”) = 31 StringUtils.compare(“ab”, “abc”) = -1
查找字符串中某个字符或字符串出现的次数countMatches(final CharSequence str, final CharSequence sub) StringUtils.countMatches(null, *) = 0 StringUtils.countMatches(“”, *) = 0 StringUtils.countMatches(“abba”, null) = 0 StringUtils.countMatches(“abba”, “”) = 0StringUtils.countMatches(“abba”, “a”) = 2 StringUtils.countMatches(“abba”, “ab”) = 1 StringUtils.countMatches(“abba”, “xxx”) = 0
将数组 array 使用分隔符 separator 连接成字符串String join(final Object[] array, final String separator) StringUtils.join(null, *) = null StringUtils.join([], *) = “” StringUtils.join([null], *) = “” StringUtils.join([“a”, “b”, “c”], “–”) = “a–b–c” StringUtils.join([“a”, “b”, “c”], null) = “abc” StringUtils.join([“a”, “b”, “c”], “”) = “abc” StringUtils.join([null, “”, “a”], ‘,’) = “,a”
将 Iterable 、Iterator 类型使用连接符连接String join(final Iterable<?> iterable, final String separator)String join(final Iterator<?> iterator, final String separator) List list = new ArrayList(); list.add(“唐”); list.add(“宋”); list.add(“元”); System.out.println(StringUtils.join(list,“,”));//唐,宋,元StringUtils.join(Arrays.asList(new String[]{null, “”, “a”}), ‘;’) = ;;a
T defaultIfBlank(final T str, final T defaultStr) 当目标字符串(str)为空,或者为 null,或者是空格,则返回默认字符串(defaultStr) StringUtils.defaultIfBlank(null, “NULL”) = “NULL” StringUtils.defaultIfBlank(“”, “NULL”) = “NULL” StringUtils.defaultIfBlank(" “, “NULL”) = “NULL” StringUtils.defaultIfBlank(“bat”, “NULL”) = “bat” StringUtils.defaultIfBlank(”", null) = null
T defaultIfEmpty(final T str, final T defaultStr) 当目标字符串(str)为空,或者为 null,则返回默认字符串(defaultStr) StringUtils.defaultIfEmpty(null, “NULL”) = “NULL” StringUtils.defaultIfEmpty(“”, “NULL”) = “NULL” StringUtils.defaultIfEmpty(" “, “NULL”) = " " StringUtils.defaultIfEmpty(“bat”, “NULL”) = “bat” StringUtils.defaultIfEmpty(”", null) = null
RandomUtils 工具类方法汇总
底层也是使用 java.util.Random。
方法 描述
static int nextInt() 生成 [0, Integer.MAX_VALUE) 之间的随机 int 值
static int nextInt(final int startInclusive, final int endExclusive) 生成 [startInclusive,endExclusive) 之间的随机整数,起始值不能小于终止值。
static boolean nextBoolean() 随机生成一个布尔值,true 或者 false
static long nextLong() 生成 [0, Long.MAX_VALUE) 之间的 long 值
long nextLong(final long startInclusive, final long endExclusive) 生成 [startInclusive,endExclusive) 之间的随机 long 值
static byte[] nextBytes(final int count) 生成指定个数的字节数组,如 nextBytes(10) 生成的字节数组有 10 个 byte 元素
static double nextDouble() 生成 [0, Double.MAX_VALUE) 直接的随机 double 值
double nextDouble(final double startInclusive, final double endInclusive) 生成 [startInclusive,endExclusive) 之间的随机 double 值
static float nextFloat() 生成 [0, Float.MAX_VALUE) 之间的随机 fluat 值
float nextFloat(final float startInclusive, final float endInclusive) 生成 [startInclusive,endExclusive) 之间的随机 float 值
RandomStringUtils 随机字符串
random(final int count) 创建长度为指定个数(count)的随机字符串,将从所有字符集中选择字符,不含字母和数字,如 “篊𣶇ࢦ𣿎椗彩𩬉𦿣𦃹뢂垅”
random(final int count, final boolean letters, final boolean numbers) 生成指定个数(count)的随机字符串,字符将从参数指示的字母或数字字符集中选择.1、letters: 字母字符集、numbers:数字字符集 2、letters 为 true、numbers 为 true:则随机字符串由字母和数字组成 3、letters 为 true、numbers 为 false:则随机字符串由字母组成 4、letters 为 false、numbers 为 true:则随机字符串由数字组成,如 7253440222803746 5、letters 为 false、numbers 为 false:则等同于 random(final int count)
random(final int count, final char… chars) 创建长度为指定个数的随机字符串,从指定的字符集(chars)中选择字符. chars 的个数可以小于 count
random(final int count, final String chars): 从指定的字符集中选择字符生成指定个数的随机字符串
randomAlphabetic(final int count) 创建指定长度的随机字符串,字符将从 (a-z, A-Z) 中选择,等同于 random(count, true, false)
randomAlphabetic(final int minLengthInclusive, final int maxLengthExclusive) 创建长度介于 [minLengthInclusive,maxLengthExclusive) 之间的随机字符串 randomAlphanumeric(final int count):创建长度为指定字符数的随机字符串,从拉丁字母字符集(a-z, A-Z)和数字0-9中选择,等同于 random(count, true, true)
randomAlphanumeric(final int minLengthInclusive, final int maxLengthExclusive) 创建长度介于 [minLengthInclusive,maxLengthExclusive) 之间的随机字符串
randomAscii(final int count) 随机字符将从 ASCII 码值介于 [32,126] 之间的字符集中选择,等价于:random(count, 32, 127, false, false)
randomAscii(final int minLengthInclusive, final int maxLengthExclusive) 创建的随机字符串个数介于 [minLengthInclusive,maxLengthExclusive)
randomGraph(final int count) 随机字符从所有可见的 ASCII 字符中选择,即除空格和控制字符外的任何内容,等价于:random(count, 33, 126, false, false)
randomGraph(final int minLengthInclusive, final int maxLengthExclusive) randomNumeric(final int count): 创建长度为指定字符数的随机字符串,随机字符将从数字字符集中选择。
randomNumeric(final int minLengthInclusive, final int maxLengthExclusive) randomPrint(final int count): 随机字符从所有可见的 ASCII 码字符和空格(即除控制字符外的任何内容)中选择。等价于 random(count, 32, 126, false, false)
ObjectUtils 对象工具类
方法 举例
allNotNull(final Object… values)检查给定数组中的任何元素值是否都不是 null。 ObjectUtils.allNotNull() = true ObjectUtils.allNotNull(, *) = true ObjectUtils.allNotNull(null) = false ObjectUtils.allNotNull(null, null) = false ObjectUtils.allNotNull(null, ) = false ObjectUtils.allNotNull(, null) = false ObjectUtils.allNotNull(*, *, null, *) = false
anyNotNull(final Object… values)检查给定数组中的元素是否有不是 null 的值。 ObjectUtils.anyNotNull() = true ObjectUtils.anyNotNull(, null) = true ObjectUtils.anyNotNull(null, *) = true ObjectUtils.anyNotNull(null, null, *, *) = true ObjectUtils.anyNotNull(null) = false ObjectUtils.anyNotNull(null, null) = false
clone(final T obj) 克隆对象。如果 obj 为 null,则返回 null.
cloneIfPossible(final T obj): 先调 clone(final T obj) ,如果返回 null,则返回原来的 obj 对象.
compare(final T c1, final T c2) compare(final T c1, final T c2, final boolean nullGreater) 1、如果 c1 < c2,则返回负数;如果 c1 > c2,则返回正数;如果 c1 = c2,则返回 0; 2、c1、c2 可以为 null。nullGreater 为 false 时,先判断 c1 如果 null ,则返回 -1,再判断 c2 如果为 null,则返回 1. 3、compare(final T c1, final T c2) 底层是 compare(c1, c2, false)
T defaultIfNull(final T object, final T defaultValue)如果传递的对象是 null,则返回默认值 ObjectUtils.defaultIfNull(null, null) = null ObjectUtils.defaultIfNull(null, “”) = “” ObjectUtils.defaultIfNull(null, “zz”) = “zz” ObjectUtils.defaultIfNull(“abc”, *) = “abc” ObjectUtils.defaultIfNull(Boolean.TRUE, *) = Boolean.TRUE
firstNonNull(final T… values)返回数组中不是 null 的第一个值 ObjectUtils.firstNonNull(null, null) = null ObjectUtils.firstNonNull(null, “”) = “” ObjectUtils.firstNonNull(null, null, “”) = “” ObjectUtils.firstNonNull(null, “zz”) = “zz” ObjectUtils.firstNonNull(“abc”, *) = “abc” ObjectUtils.firstNonNull(null, “xyz”, *) = “xyz” ObjectUtils.firstNonNull(Boolean.TRUE, *) = Boolean.TRUE ObjectUtils.firstNonNull() = null
isEmpty(final Object object)检查对象是否为空,支持:CharSequence、Array、Collection、Map ObjectUtils.isEmpty(null) = true ObjectUtils.isEmpty(“”) = true ObjectUtils.isEmpty(“ab”) = false ObjectUtils.isEmpty(new int[]{}) = true ObjectUtils.isEmpty(new int[]{1,2,3}) = false ObjectUtils.isEmpty(1234) = false
isNotEmpty(final Object object) ObjectUtils.isNotEmpty(null) = false ObjectUtils.isNotEmpty(“”) = false ObjectUtils.isNotEmpty(“ab”) = true ObjectUtils.isNotEmpty(new int[]{}) = false ObjectUtils.isNotEmpty(new int[]{1,2,3}) = true ObjectUtils.isNotEmpty(1234) = true
max(final T… values):获取其中最大的值 min(final T… values): 获取其中最小的值 median(final T… items):获取其中的中位数
NumberUtils 数值工具类
1、常用常量如下:
Long LONG_ZERO = Long.valueOf(0L); Long LONG_ONE = Long.valueOf(1L); Long LONG_MINUS_ONE = Long.valueOf(-1L); Integer INTEGER_ZERO = Integer.valueOf(0); Integer INTEGER_ONE = Integer.valueOf(1); Integer INTEGER_TWO = Integer.valueOf(2); Integer INTEGER_MINUS_ONE = Integer.valueOf(-1); Short SHORT_ZERO = Short.valueOf((short) 0); Short SHORT_ONE = Short.valueOf((short) 1); Short SHORT_MINUS_ONE = Short.valueOf((short) -1); Byte BYTE_ZERO = Byte.valueOf((byte) 0); Byte BYTE_ONE = Byte.valueOf((byte) 1); Byte BYTE_MINUS_ONE = Byte.valueOf((byte) -1); Double DOUBLE_ZERO = Double.valueOf(0.0d); Double DOUBLE_ONE = Double.valueOf(1.0d); Double DOUBLE_MINUS_ONE = Double.valueOf(-1.0d); Float FLOAT_ZERO = Float.valueOf(0.0f); Float FLOAT_ONE = Float.valueOf(1.0f); Float FLOAT_MINUS_ONE = Float.valueOf(-1.0f);
2、常用方法如下:
int compare(final byte x, final byte y):比较 x、y 的大小,源码: return x - y; int compare(final int x, final int y): 比较 x、y 的大小,源码:x == y ? 0 : x < y ? -1 : 1 int compare(final long x, final long y): 比较 x、y 的大小,源码:x == y ? 0 : x < y ? -1 : 1 int compare(final short x, final short y) : 比较 x、y 的大小,源码:x == y ? 0 : x < y ? -1 : 1
BigInteger createBigInteger(final String str) 1、将字符串转成 BigInteger,支持 10进制,十六进制(以0X或者#开头)、8进制(以0开头) 2、如果 str 为 null,则返回 null。如果转换错误,则抛出 NumberFormatException
BigDecimal createBigDecimal(final String str) 1、将字符串转成 BigDecimal,只支持 10 进制,底层就是使用 new BigDecimal(str) 2、str 为null时,返回 null,str 为空时会抛出 NumberFormatException 异常
Double createDouble(final String str):字符串转 Double 类型,源码: str == null ? null : Double.valueOf(str); Float createFloat(final String str):字符串转 Float 类型,源码: str == null ? null : Float.valueOf(str); Integer createInteger(final String str):1、字符串转 Integer 类型,支持十六进制(0xhhhh)、8进制(0dddd),源码: str == null ? null : Integer.decode(str); Long createLong(final String str):1、字符串转 Long 类型,支持十六进制(0xhhhh)、8进制(0dddd),源码: str == null ? null : Long.decode(str);
boolean isCreatable(final String str) 1、判断字符串是否为有效的 java 数字,支持16进制、8进制、10进制、正数负数、科学计数法(如8.788006e+05)、类型限定符(110L、3.14f) 2、0X 开头当做 16 进制处理,如 0X89F9;以0开头的非十六进制字符串作为八进制值处理,如 076、-076等 3、注意例如 098 不是八进制,因为8进制是0-7,没有8、9,所以会当做10进制处理,而此时不是数字,所以为false. 4、str 为空或者为 null,都返回 false
boolean isDigits(final String str) 1、检查字符串中是否只含有数字,负数和小数都会返回 false 2、str 为 null 或者为空 返回 false 3、底层调用 {@link StringUtils#isNumeric(java.lang.CharSequence)}
boolean isParsable(final String str) 1、检查字符串是否可以解析为数字,即 {@link Integer#parseInt(String)},{@link Long#parseLong(String)}, {@link Float#parseFloat(String),{@link Double#parseDouble(String)}. 2、这个方法可以防止调用上面的方法时出现 {@link java.text.ParseException} 3、注意只支持 10 进制,支持正负数,支持小数,支持不 8进制、16进制、不支持科学计数法,也不支持类型限定符(如 3000L,3.14F)
求最大值 byte max(byte a, final byte b, final byte c)byte max(final byte… array) double max(final double a, final double b, final double c) double max(final double… array) float max(final float a, final float b, final float c) float max(final float… array) int max(int a, final int b, final int c) int max(final int… array) long max(long a, final long b, final long c) long max(final long… array) short max(short a, final short b, final short c) short max(final short… array) 求最小值 byte min(byte a, final byte b, final byte c) byte min(final byte… array) double min(final double a, final double b, final double c) double min(final double… array) float min(final float a, final float b, final float c) float min(final float… array) int min(int a, final int b, final int c) int min(final int… array) long min(long a, final long b, final long c) long min(final long… array) short min(short a, final short b, final short c) short min(final short… array)
byte toByte(final String str):字符串转 byte,如果转换失败,异常捕获后不会抛出,直接返回默认值0;如果 str 为 null,则返回默认值 0 byte toByte(final String str, final byte defaultValue):字符串转 byte,同时设置默认值时,其余和上面同理其它数值类型也是同理(转换失败不会抛出异常,而是返回默认值) double toDouble(final BigDecimal value): double toDouble(final BigDecimal value, final double defaultValue) double toDouble(final String str) double toDouble(final String str, final double defaultValue) float toFloat(final String str) 其它数值类型也是同理(转换失败不会抛出异常,而是返回默认值) float toFloat(final String str, final float defaultValue) int toInt(final String str): long toLong(final String str): toInt(final String str, final int defaultValue) long toLong(final String str, final long defaultValue) short toShort(final String str) toShort(final String str, final short defaultValue)
ArrayUtils 通用数组操作工具类
1、有了封装的工具类,可以对数组如同 List 一样进行增删改查,而且可以有效的避免空指针异常。
更多 API 方法可以参考官网文档:Apache Commons Lang 3.11 API
ExceptionUtils 异常工具类
1、ExceptionUtils 代替原生的 e.printStackTrace() 打印日志,防止在在高并发下获取异常信息阻塞,提供性能。
2、比如新增保存数据,主键冲突,如果直接使用 e.getMessage() ,则获取的是:java.lang.RuntimeException: SQL Exception:insert into xxx(a,b,c) values(1,2,3,)
没有办法获取到底层的堆栈信息:oracle.jdbc.OracleDatabaseException: ORA-00001: 违反唯一约束条件(xxx).
而使用 ExceptionUtils.getStackTrace(e) 则可以获取整个堆栈信息.
/**
* String getStackTrace(final Throwable throwable): 以字符串形式从可丢弃对象获取堆栈跟踪信息
*/
@Test
public void testGetStackTrace() {
try {
System.out.println(1 / 0);
} catch (Exception e) {
String stackTrace = ExceptionUtils.getStackTrace(e);
System.out.println(stackTrace);
}
try {
int[] ints = {1, 2, 3};
System.out.println(ints[8]);
} catch (Exception e) {
e.getMessage();
String stackTrace = ExceptionUtils.getStackTrace(e);
System.out.println(stackTrace);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Pair对象对 与 Triple 三元对象组
1、当一个方法需要返回两个及以上字段时,通常是封装成一个临时对象,比如 Map 返回,现在有了 Pair 和 Triple 就不需要了。
2、Pair 可以同时封装两个对象,Triple 可以同时封装三个对象。
/**
* MutableTriple:可变三元对象组,里面有 left、middle、right 三个元素,用于封装三个对象。
* MutableTriple 是可变的,构建对象后,可以再 setXxx 修改值
* 如果其中的元素对象都是线程安全的,则是线程安全的。
*/
@Test
public void mutableTriple() {
// 同时封装 3 个对象
MutableTriple<Integer, String, Date> mutableTriple = MutableTriple.of(212, "蚩尤后裔", new Date());
mutableTriple.setLeft(800);
//800,蚩尤后裔,Sun Jun 13 09:27:37 CST 2021
System.out.println(mutableTriple.getLeft() + "," + mutableTriple.getMiddle() + "," + mutableTriple.getRight());
}
1
2
3
4
5
6
7
8
9
10
11
12
13
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39977988/article/details/130708526