commons-lang3常用方法
一、引入依赖
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
二、StringUtils
abbreviateMiddle
截取指定字符串,中间使用指定字符代替
方法:public static String abbreviateMiddle(final String str, final String middle, final int length) {}
str:截取的字符串
middle:代替的字符
length:截取的长度
注意:截取的长度不能小于2
/**
* 截取指定的字符串,中间用指定字符代替。前面字符个数 + 代替字符个数 + 后2个字符 = 截取的字符个数
* 显示5个长度的字符串,除了最后一个中间用设置的符号代替
* 长度不能小于 2
*/
//截取9个字符,中间使用四个*代替
String str2 = StringUtils.abbreviateMiddle("15889009897","****",9);
System.out.println(str2); //158****97
//字符刚好只有10个
String s1 = StringUtils.abbreviateMiddle("1342354534", "**", 10);
System.out.println(s1); //1342354534
//截取5个字符
String s2 = StringUtils.abbreviateMiddle("12345678910", "*", 5);
System.out.println(s2); //12*10
//截取长度不能小于2
String s3 = StringUtils.abbreviateMiddle("12345678910", "*", 2);
System.out.println(s3); //12345678910
abbreviate
截取指定字符串,多的用指定字符代替
方法:public static String abbreviate(final String str, final int maxWidth) {}
显示指定字符串,如果字符串个数大于maxWidth
,用 ...
代替。
方法:public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {}
,指定字符代替。
注意:maxWidth不能小于3,因为后面就有三个点,就是三个字符了
//显示6个长的的字符串,多的用三个点代替(...)
StringUtils.abbreviate("abc中文asdfdefg",6);//输出结果:abc...
StringUtils.abbreviate("这是中文哦可以全部显示吗",5);//这是...
StringUtils.abbreviate("abcdefgh",12); //abcdefgh
StringUtils.abbreviate("abcdaldf","**",3); //a**
contains
检测某个字符串中是否包含某个字符
方法:public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {}
检测seq
字符串中是否包含searchSeq
字符
seq:被检测的字符串
searchSeq:检测的字符串
//检测abcde字符串中是否包含abc字符
StringUtils.contains("abcde", "abc"); //true
containsAny
检测某个字符串中是否包含字符串1或者字符串2……
方法:public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {}
//检测字符串abcdef中是否保护abm或者y
StringUtils.containsAny("abcdef", "abm", "y"); //false
//检测abcdefg字符串中是否包含 "b"或者"h"或者"N”字符串
StringUtils.containsAny("abcdefg", "b", "h", "N"); //true
defaultString
将null
空字符串转为""
空字符串
方法:public static String defaultString(final String str) {}
StringUtils.defaultString(null);// ""
StringUtils.defaultString("");// ""
StringUtils.defaultString("bat");//"bat"
isEmpty
和isNotEmpty
判断字符串是否为空
方法:public static boolean isEmpty(final CharSequence cs) {}
cs
为空返回true
public static boolean isNotEmpty(final CharSequence cs) {}
cs
不为空返回true
StringUtils.isEmpty(null);//true
StringUtils.isEmpty("");//true
StringUtils.isEmpty(" ");//false
StringUtils.isEmpty("bob");//false
StringUtils.isEmpty(" bob ");//false
StringUtils.isNotEmpty(null);//false
StringUtils.isNotEmpty("");//false
StringUtils.isNotEmpty(" ");//true
StringUtils.isNotEmpty("bob");//true
StringUtils.isNotEmpty(" bob ");//true
isBlank
和isNotBlank
判断字符串是否为空
StringUtils.isBlank(null);//true
StringUtils.isBlank("");//true
StringUtils.isBlank("");//true
StringUtils.isBlank("bob");//false
StringUtils.isBlank("bob");//false
StringUtils.isNotBlank(null);//false
StringUtils.isNotBlank("");//false
StringUtils.isNotBlank("");//false
StringUtils.isNotBlank("bob");//true
StringUtils.isNotBlank("bob");//true
注意:isEmpty
和 isBlank
区别
isEmpty
认为 " "
是不等于空的。
isBlank
认为 " "
是等于空的,具有一个前后去掉空格的意思。
replace
替换字符串
方法:public static String replace(final String text, final String searchString, final String replacement) {}
将 text
字符串中的 searchString
字符替换成 replacement
StringUtils.replace(null,,);//null
StringUtils.replace("",,);//""
StringUtils.replace("any",null,);//"any"
StringUtils.replace("any",,null);//"any"
StringUtils.replace("any","",);//"any"
StringUtils.replace("aba","a",null);//"aba"
StringUtils.replace("aba","a","");//"b"
StringUtils.replace("aba","a","z");//"zbz"
三、 RandomUtils
nextBoolean
返回一个随机布尔值
方法:public static boolean nextBoolean() {}
//返回一个随机布尔值
boolean b = RandomUtils.nextBoolean();
System.out.println(b);
nextBytes
生活指定长度的随机字节数组
方法:public static byte[] nextBytes(final int count) {}
//随机生成10个长的的byte数组
byte[] bytes = RandomUtils.nextBytes(10);
//打印字节数组
System.out.println(Arrays.toString(bytes));
//输出结果:[105, 86, 28, 57, -113, 13, -30, -83, -96, 126]
nextInt
指定范围生成int
类型的随机数
方法:public static int nextInt(final int startInclusive, final int endExclusive) {}
for (int i = 0; i < 20; i++) {
//指定范围随机数1-5 不包括5
int rand = RandomUtils.nextInt(1, 5);
System.out.print(rand+" ");
}
输出结果:4 3 2 2 2 2 4 1 3 3 3 2 3 4 4 2 2 1 3 2
nextDouble
指定范围生成double
类型的随机数
方法:public static double nextDouble(final double startInclusive, final double endInclusive) {}
//1-4.99999之间的随机数,nextLong,nextFloat
double v = RandomUtils.nextDouble(1, 5); //3.6664777207393597
System.out.println(v);
注意:导包的时候必要导错了,org.apache.commons.lang3
,都说使用 commons-lang3
工具了,用的方法自然是 org.apache.commons.lang3
下面的了。不要到时候将包导错了,你说怎么效果不太一样,那就尴尬了。