org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException
,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。
除了构造器,StringUtils
中一共有130多个方法,并且都是static的,
所以我们可以这样调用StringUtils.xxx()
。
下面分别对一些常用方法做简要介绍:
在校验一个String类型的变量是否为空时,通常存在3中情况
- 是否为 null
- 是否为 “”
- 是否为空字符串(引号中间有空格) 如: ” “。
制表符、换行符、换页符和回车
public static boolean isBlank()
该方法可以一次性校验这三种情况,返回值都是true,否则为false
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车
StringUtils.isBlank()=true //均识为空白符
StringUtils.isBlank("\") = false //"\b"为单词边界
StringUtils.isBlank("fff") = false
StringUtils.isBlank("ffff ") = false
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是str == null
或 str.length() == 0
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
public static boolean isNotEmpty(String str)
判断某字符串是否非空,
等于!isEmpty(String str)
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true
public static boolean isBlank(String str)
判断某字符串是否为空或长度为0或由空白符(whitespace)构成
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true
StringUtils.isBlank("\b") = false
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,
等于!isBlank(String str)
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
public static String trim(String str)
去掉字符串两端的控制符(control characters, char <= 32
)
如果输入为null则返回null
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" \b \t \n \f \r ") = ""
StringUtils.trim(" \n\tss \b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"
public static String strip(String str)
去掉字符串两端的空白符(whitespace),
如果输入为null则返回null
下面是示例(注意和trim()的区别):
StringUtils.strip(null) = null
StringUtils.strip("") = ""
StringUtils.strip(" ") = ""
StringUtils.strip(" \b \t \n \f \r ") = "\b"
StringUtils.strip(" \n\tss \b") = "ss \b"
StringUtils.strip(" d d dd ") = "d d dd"
StringUtils.strip("dd ") = "dd"
StringUtils.strip(" dd ") = "dd"
- 比较两个字符串是否相等,如果两个均为空则也认为相等。
public static boolean equals(String str1, String str2)
- 比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。
public static boolean equalsIgnoreCase(String str1, String str2)
- 返回字符searchChar在字符串str中第一次出现的位置。
如果searchChar没有在str中出现则返回-1,
如果str为null或””,则也返回-1
public static int indexOf(String str, char searchChar)
返回字符searchChar从startPos开始在字符串str中第一次出现的位置。
如果从startPos开始searchChar没有在str中出现则返回-1,
如果str为null或””,则也返回-1
public static int indexOf(String str, char searchChar, int startPos)
public static int lastIndexOf(String str, char searchChar, int startPos)
返回字符串searchStr在字符串str中第一次出现的位置。
如果str为null或searchStr为null则返回-1,
如果searchStr为””,且str为不为null,则返回0,
如果searchStr不在str中,则返回-1
public static int indexOf(String str, String searchStr)
public static int lastIndexOf(String str, char searchChar)
判断字符串str中是否包含字符searchChar。
如果str为null或””,返回false;
如果searchChar不在str中,返回false。
public static boolean contains(String str, char searchChar)
- 判断字符串str是否包含字符串searchStr,不区分大小写。
public static boolean containsIgnoreCase(String str, String searchStr)
- 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。
public static int indexOfAny(String str, char[] searchChars)
得到字符串str的子串。
如果start小于0,位置是从后往前数的第|start|个
如果str为null或””,则返回它本身
public static String substring(String str, int start)
得到字符串str的子串。
如果start小于0,位置是从后往前数的第|start|个,
如果end小于0,位置是从后往前数的第|end|个,
如果str为null或””,则返回它本身
public static String substring(String str, int start, int end)
得到字符串str从右边数len长度的子串。
如果str为null或为””,则返回它本身
如果len小于0,则返回””
public static String right(String str, int len)
得到字符串str从pos开始len长度的子串。
如果str为null或为””,则返回它本身
如果len小于0或pos大于srt的长度,则返回””
如果pos小于0,则pos设为0
public static String mid(String str, int pos, int len)
得到字符串str的在字符串separator出现前的字串,且separator不包括在内。
如果str为null或为””,则返回它本身
如果separator为null,则返回str本身
public static String substringBefore(String str, String separator)
把字符串拆分成一个字符串数组,用空白符(whitespace)作为分隔符。
Whitespace是这样定义的
{@link Character#isWhitespace(char)}
如果字符串为null,返回null
如果字符串为””,返回空数组{}
public static String[] split(String str)
把字符串拆分成一个字符串数组,用指定的字符separatorChar作为分隔符。
如果字符串为null,返回null
如果字符串为””,返回空数组{}
public static String[] split(String str, char separatorChar)
- 在字符串text中用with代替repl,替换所有。
public static String replace(String text, String repl, String with)
如果str为null,则返回null
如果字符串长度小于size,则在右边补空格使其长度等于size,然后返回
如果字符串长度大于等于size,则返回它本身
public static String rightPad(String str, int size)
// 补充字符串为padChar
public static String rightPad(String str, int size, char padChar)
评论前必须登录!
注册