StringUtils工具类常用方法
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅。
- isEmpty(String str) 是否为空,空格字符为false
- isNotEmpty(String str) 是否为非空,空格字符为true
- isBlank(String str) 是否为空,空格字符为true
- isNotBlank(String str) 是否为非空,空格字符为false
- trim(String str)去除字符串两端的控制符,空字符串、null 返回 null
- trimToEmpty(String str) 去除字符串两端的控制符,空字符串、null 返回""
- stripToNull(String str) 去除字符串两端的空白符,空字符串、null 返回null
- stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回""
- strip(String str, String stripChars) 去掉str两端的在stripChars中的字符
StringUtils.strip("000000134_76539000","0")="134_76539"
- stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符
- stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符
- equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等
- indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 "",也返回-1
- indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。
- contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。
StringUtils.contains("", "") = true
StringUtils.contains("dfg", "") = true
- containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写
- int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1
- subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身
- subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 "" 则返回其本身。
- subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身
- subString(String str,int start,int end) 同上
- left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 "",则返回其本身,如果len小于0,则返回""
- right(String str,int len)得到字符串str从右边数len长度的子串
- mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。
- split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}
- split(String str,char c) 按照 char c 拆分字符串
- join(Object[] arrey)把数组中的元素连接成一个字符串返回
- join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上
- deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符
- removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串
- removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。
- remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回
- replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有
- replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符
- replaceChars(String str, String searchChars, String replaceChars) 这个有点特别,先看下面三个例子
StringUtils.replaceChars("asssdf","s","yyy")) = "ayyydf"
StringUtils.replaceChars("asdf","sd","y")) = "ayf"
StringUtils.replaceChars("assssddddf","sd","y"))= "ayyyyf"
解释:为什么会出现上面这样的结果呢?原来这个置换规则是这样的,他是拿searchChars的index,去replaceChars找相应的index然后替换掉,怎么说呢?比如说第一个例子 s 的index 是0,找到yyy相对应的index为0的字符是y。第二个例子 's' 的index是0,'d'的index是1, 字符's' 可以找到对应index为0的 'y',d就找不到index为'1'的的字符了,所以就直接过滤掉了,听明白了吗?
- overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串
- chop(String str) 去掉字符串的最后一个字符,比如/r/n
- repeat(String str,int repart) 重复字符串repeat次
- rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐
- leftPad(String str,int size,String padStr)同上
- center(String str,int size)产生一个字符串,长度等于size,str位于新串的中心
- swapCase(String str) 字符串中的大写转小写,小写转换为大写
转自: https://www.cnblogs.com/jmcui/p/7208383.html
一、NumberUtils工具类
/*1.NumberUtils.isNumber():判断字符串是否是数字*/
NumberUtils.isNumber("5.96");//结果是true
NumberUtils.isNumber("s5");//结果是false
NumberUtils.isNumber("0000000000596");//结果是true
/*2.NumberUtils.isDigits():判断字符串中是否全为数字*/
NumberUtils.isDigits("0000000000.596");//false
NumberUtils.isDigits("0000000000596");//true
/*3.NumberUtils.toInt():字符串转换为整数*/
NumberUtils.toInt("5");
NumberUtils.toLong("5");
NumberUtils.toByte("3");
NumberUtils.toFloat("3.2");
NumberUtils.toDouble("4");
NumberUtils.toShort("3");
/*4.NumberUtils.max():找出最大的一个*/
NumberUtils.max(newint[]{3,5,6});//结果是6
NumberUtils.max(3,1,7);//结果是7
/*5.NumberUtils.min():找出最小的一个*/
NumberUtils.min(newint[]{3,5,6});//结果是6
NumberUtils.min(3,1,7);//结果是7
/*6.NumberUtils.createBigDecimal()通过字符串创建BigDecimal类型,支持long、int、float、double、number等数值*/
NumberUtils.createBigDecimal("1");
NumberUtils.createLong("1");
NumberUtils.createInteger("1");
二、ArrayUtils工具类
/*1.ArrayUtils.isEmpty(strs):判断数组是否为空, 不为空返回false, 为空true*/
ArrayUtils.isEmpty(new String[]{"21","是"});//结果是false
ArrayUtils.isEmpty(new String[]{""});//结果是false
ArrayUtils.isEmpty(new String[]{null});//结果是false
ArrayUtils.isEmpty(new String[]{});//结果是true
/*2.ArrayUtils.isNotEmpty(strs):判断数组是否不为空,不为空返回true,为空false*/
ArrayUtils.isNotEmpty(new String[]{"21","是"});//结果是true
ArrayUtils.isNotEmpty(new String[]{""});//结果是true
ArrayUtils.isNotEmpty(new String[]{});//结果是false
/*3.ArrayUtils.isSameLength(strs,strs2):判断两个数组长度是否相等,长度相等返回true,否则返回false。相比较的两个数组类型必须相同*/
ArrayUtils.isSameLength(new String[]{"21","是"},new String[]{"21","是"});//返回false
/*4.ArrayUtils.isSameType(strs,strs2):判断两个数组的类型是否相同,相同返回true,否则返回false*/
ArrayUtils.isSameType(new String[]{"21","是"},newInteger[]{3});
/*5.ArrayUtils.isEquals(strs,strs2)判断两个数组是否相等*/
ArrayUtils.isEquals(strs,strs);//结果是true
/*6.ArrayUtils.toString()将一个数组转换成String,用于打印*/
ArrayUtils.toString(new String[]{"21","是"});//结果是:{21,是}
/*7.ArrayUtils.clone赋值(克隆)数组*/
Object[]s=ArrayUtils.clone(newObject[]{"33","yy"});
/*8.ArrayUtils.subarray截取子数组:根据起始索引startIndexInclusive到结束索引startIndexInclusive*/
Object[]s1=ArrayUtils.subarray(newObject[]{"33","yy","uu"},0,1);//结果是返回数组:[33]
Object[]s2=ArrayUtils.subarray(newObject[]{"33","yy","uu"},0,2);//结果是返回数组:[33,yy]
/*9.ArrayUtils.indexOf查询某个object在数组中的位置,可是指定起始搜索位置*/
intindex=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu");//结果是2
intindex1=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu",2);//结果是2
intindex3=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu",3);//结果是-1
/*10.ArrayUtils.lastIndexOf反向查询某个object在数组中的位置,可以指定起始搜索位置*/
intindex11=ArrayUtils.lastIndexOf(newObject[]{"33","yy","uu"},"33");//结果是0
intindex22=ArrayUtils.lastIndexOf(newObject[]{"33","yy","uu"},"33",2);
/*11.ArrayUtils.contains查询某个object是否在数组中*/
ArrayUtils.contains(new String[]{"1", "2", "3"}, "11");
/*12.ArrayUtils.reverse反转数组*/
ArrayUtils.reverse(new String[]{"22","yy"});//结果是:{"yy","22"}
/*13.ArrayUtils.add添加一object到数组*/
String[] t={"22","yy"};
String[] gg=(String[])ArrayUtils.add(t,"jj");//{"22","yy","jj"}
/*14.ArrayUtils.addAll合并两个数组*/
String[]ggo=(String[])ArrayUtils.addAll(new String[]{"22","yy"},new String[]{"jj"});//结果是:[22,yy,jj]
ArrayUtils.addAll(new String[]{"22","yy"},new String[]{"jj", "jj"}); //结果是:[22,yy,jj,jj]
/*15.ArrayUtils.remove删除数组某个位置的元素*/
String[]gg4=(String[])ArrayUtils.remove(new String[]{"22","yy"},1);
/*16.ArrayUtils.removeElement删除数组中某个对象*/
String[]ggpp=(String[])ArrayUtils.removeElement(new String[]{"22","yy"},"yy");
三、RandomUtils工具类
RandomUtils帮助我们产生随机数,不止是数字类型,连boolean类型都可以通过RandomUtils产生,RandomStringUtils生成字符随机数。
RandomUtils.nextBoolean();
RandomUtils.nextDouble();
RandomUtils.nextLong();
// 注意这里传入的参数不是随机种子,而是在0~1000之间产生一位随机数
RandomUtils.nextInt(1000);
转自: https://www.cnblogs.com/linjiqin/archive/2013/11/14/3423856.html