• StringUtils工具类常用方法介绍(持续更新)


    StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。

    除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用StringUtils.xxx()

    一.isBlank与isNotBlank

    1. 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()均识为空白符
    StringUtils.isBlank("/b") = false //"/b"为单词边界符
    StringUtils.isBlank("bob") = false
    StringUtils.isBlank(" bob ") = false

    2.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

    二.equals用法

    比较两个字符串是否相等,如果两个均为null,则也认为相等

    StringUtils.equals("", "");   //结果是true

    StringUtils.equals("str", "str");   //结果是true

    StringUtils.equals(null, null);  //结果是true

    StringUtils.equals(null, "");  //结果是falseStringUtils.equals("",null);  //结果是falseStringUtils.equals(null,"");  //结果是falseStringUtils.equalsIgnoreCase("ss", "Ss");  //不区分大小写--结果是true

    三.isEmpty与isNotEmpty

    1. public static boolean isEmpty(String str)
    判断某字符串是否为空,为空的标准是str==null或str.length()==0
    下面是StringUtils判断是否为空的示例:
    StringUtils.isEmpty(null) = true
    StringUtils.isEmpty("") = true
    StringUtils.isEmpty(" ") = false //注意在StringUtils中空格作非空处理
    StringUtils.isEmpty(" ") = false
    StringUtils.isEmpty("bob") = false
    StringUtils.isEmpty(" bob ") = false

    2. 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

    四.indexOf

    1.普通查找字符,如果一参数为null或者""返回-1

    public static int indexOf(CharSequence seq,
              CharSequence searchSeq)

    Finds the first index within a CharSequence, handling null. This method uses String.indexOf(String, int) if possible.

    null CharSequence will return -1.

     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
     
    Parameters:
    seq - the CharSequence to check, may be null
    searchSeq - the CharSequence to find, may be null
    Returns:
    the first index of the search CharSequence, -1 if no match or null string input
    Since:
    2.0, 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)

    2.从指定位置(三参数)开始查找

    public static int indexOf(CharSequence seq,
              CharSequence searchSeq,
              int startPos)

    Finds the first index within a CharSequence, handling null. This method uses String.indexOf(String, int) if possible.

    null CharSequence will return -1. A negative start position is treated as zero. An empty ("") search CharSequence always matches. A start position greater than the string length only matches an empty search CharSequence.

     StringUtils.indexOf(null, *, *)          = -1
     StringUtils.indexOf(*, null, *)          = -1
     StringUtils.indexOf("", "", 0)           = 0
     StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
     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
     
    Parameters:
    seq - the CharSequence to check, may be null
    searchSeq - the CharSequence to find, may be null
    startPos - the start position, negative treated as zero
    Returns:
    the first index of the search CharSequence (always ≥ startPos), -1 if no match or null string input
    Since:
    2.0, 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)

    五.indexOfIgnoreCase

    1.查找,不区分大小写

    public static int indexOfIgnoreCase(CharSequence str,
                        CharSequence searchStr)

    Case in-sensitive find of the first index within a CharSequence.

    null CharSequence will return -1. A negative start position is treated as zero. An empty ("") search CharSequence always matches. A start position greater than the string length only matches an empty search CharSequence.

     StringUtils.indexOfIgnoreCase(null, *)          = -1
     StringUtils.indexOfIgnoreCase(*, null)          = -1
     StringUtils.indexOfIgnoreCase("", "")           = 0
     StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
     StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
     StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
     
    Parameters:
    str - the CharSequence to check, may be null
    searchStr - the CharSequence to find, may be null
    Returns:
    the first index of the search CharSequence, -1 if no match or null string input
    Since:
    2.5, 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)

    2.从指定位置(三参数)开始查找,不区分大小写

    public static int indexOfIgnoreCase(CharSequence str,
                        CharSequence searchStr,
                        int startPos)

    Case in-sensitive find of the first index within a CharSequence from the specified position.

    null CharSequence will return -1. A negative start position is treated as zero. An empty ("") search CharSequence always matches. A start position greater than the string length only matches an empty search CharSequence.

     StringUtils.indexOfIgnoreCase(null, *, *)          = -1
     StringUtils.indexOfIgnoreCase(*, null, *)          = -1
     StringUtils.indexOfIgnoreCase("", "", 0)           = 0
     StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
     StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
     StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
     StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
     StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
     StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
     StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
     StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
     
    Parameters:
    str - the CharSequence to check, may be null
    searchStr - the CharSequence to find, may be null
    startPos - the start position, negative treated as zero
    Returns:
    the first index of the search CharSequence (always ≥ startPos), -1 if no match or null string input
    Since:
    2.5, 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)

     六.split

    1.分割,以指定字符分割成数组

    public static String[] split(String str,
                 char separatorChar)

    Splits the provided text into an array, separator specified. This is an alternative to using StringTokenizer.

    The separator is not included in the returned String array. Adjacent separators are treated as one separator. For more control over the split use the StrTokenizer class.

    null input String returns null.

     StringUtils.split(null, *)         = null
     StringUtils.split("", *)           = []
     StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
     StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
     StringUtils.split("a:b:c", '.')    = ["a:b:c"]
     StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
     
    Parameters:
    str - the String to parse, may be null
    separatorChar - the character used as the delimiter
    Returns:
    an array of parsed Strings, null if null String input
    Since:
    2.0

    2.用空格分割成数组,null为null

    public static String[] split(String str)

    Splits the provided text into an array, using whitespace as the separator. Whitespace is defined by Character.isWhitespace(char).

    The separator is not included in the returned String array. Adjacent separators are treated as one separator. For more control over the split use the StrTokenizer class.

    null input String returns null.

     StringUtils.split(null)       = null
     StringUtils.split("")         = []
     StringUtils.split("abc def")  = ["abc", "def"]
     StringUtils.split("abc  def") = ["abc", "def"]
     StringUtils.split(" abc ")    = ["abc"]
    Parameters:str - the String to parse, may be null

    Returns:an array of parsed Strings, null if null String input

    3.以指定字符分割成数组,第三个参数表示分隔成数组的长度,如果为0全体分割

    public static String[] split(String str,

                 String separatorChars,

                 int max)

    Splits the provided text into an array with a maximum length, separators specified.

    The separator is not included in the returned String array. Adjacent separators are treated as one separator.

    A null input String returns null. A null separatorChars splits on whitespace.

    If more than max delimited substrings are found, the last returned string includes all characters after the first max - 1 returned strings (including separator characters).

     StringUtils.split(null, *, *)            = null

     StringUtils.split("", *, *)              = []

     StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]

     StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]

     StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]

     StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]

     

    Parameters:

    str - the String to parse, may be null

    separatorChars - the characters used as the delimiters, null splits on whitespace

    max - the maximum number of elements to include in the array. A zero or negative value implies no limit

    Returns:

    an array of parsed Strings, null if null String input

     .substring,字符串截取

    1.截取指定位置的字符,null返回null.""返回""

    public static String substring(String str,

                   int start)

    Gets a substring from the specified String avoiding exceptions.

    A negative start position can be used to start n characters from the end of the String.

    A null String will return null. An empty ("") String will return "".

     StringUtils.substring(null, *)   = null

     StringUtils.substring("", *)     = ""

     StringUtils.substring("abc", 0)  = "abc"

     StringUtils.substring("abc", 2)  = "c"

     StringUtils.substring("abc", 4)  = ""

     StringUtils.substring("abc", -2) = "bc"

     StringUtils.substring("abc", -4) = "abc"

     

    Parameters:

    str - the String to get the substring from, may be null

    start - the position to start from, negative means count back from the end of the String by this many characters

    Returns:

    substring from start position, null if null String input

    2.截取指定区间的字符

    public static String substring(String str,

                   int start,

                   int end)

    Gets a substring from the specified String avoiding exceptions.

    A negative start position can be used to start/end n characters from the end of the String.

    The returned substring starts with the character in the start position and ends before the end position. All position counting is zero-based -- i.e., to start at the beginning of the string use start = 0. Negative start and end positions can be used to specify offsets relative to the end of the String.

    If start is not strictly to the left of end, "" is returned.

     StringUtils.substring(null, *, *)    = null

     StringUtils.substring("", * ,  *)    = "";

     StringUtils.substring("abc", 0, 2)   = "ab"

     StringUtils.substring("abc", 2, 0)   = ""

     StringUtils.substring("abc", 2, 4)   = "c"

     StringUtils.substring("abc", 4, 6)   = ""

     StringUtils.substring("abc", 2, 2)   = ""

     StringUtils.substring("abc", -2, -1) = "b"

     StringUtils.substring("abc", -4, 2)  = "ab"

     

    Parameters:

    str - the String to get the substring from, may be null

    start - the position to start from, negative means count back from the end of the String by this many characters

    end - the position to end at (exclusive), negative means count back from the end of the String by this many characters

    Returns:

    substring from start position to end position, null if null String input

    3.从左截取指定长度的字符串

    public static String left(String str,

              int len)

    Gets the leftmost len characters of a String.

    If len characters are not available, or the String is null, the String will be returned without an exception. An empty String is returned if len is negative.

     StringUtils.left(null, *)    = null

     StringUtils.left(*, -ve)     = ""

     StringUtils.left("", *)      = ""

     StringUtils.left("abc", 0)   = ""

     StringUtils.left("abc", 2)   = "ab"

     StringUtils.left("abc", 4)   = "abc"

     

    Parameters:

    str - the String to get the leftmost characters from, may be null

    len - the length of the required String

    Returns:

    the leftmost characters, null if null String input

    4.从右截取指定长度的字符串

    public static String right(String str,

               int len)

    Gets the rightmost len characters of a String.

    If len characters are not available, or the String is null, the String will be returned without an an exception. An empty String is returned if len is negative.

     StringUtils.right(null, *)    = null

     StringUtils.right(*, -ve)     = ""

     StringUtils.right("", *)      = ""

     StringUtils.right("abc", 0)   = ""

     StringUtils.right("abc", 2)   = "bc"

     StringUtils.right("abc", 4)   = "abc"

     

    Parameters:

    str - the String to get the rightmost characters from, may be null

    len - the length of the required String

    Returns:

    the rightmost characters, null if null String input

    5.第几个开始截取,三参数表示截取的长度

    public static String mid(String str,

             int pos,

             int len)

    Gets len characters from the middle of a String.

    If len characters are not available, the remainder of the String will be returned without an exception. If the String is null, null will be returned. An empty String is returned if len is negative or exceeds the length of str.

     StringUtils.mid(null, *, *)    = null

     StringUtils.mid(*, *, -ve)     = ""

     StringUtils.mid("", 0, *)      = ""

     StringUtils.mid("abc", 0, 2)   = "ab"

     StringUtils.mid("abc", 0, 4)   = "abc"

     StringUtils.mid("abc", 2, 4)   = "c"

     StringUtils.mid("abc", 4, 2)   = ""

     StringUtils.mid("abc", -2, 2)  = "ab"

     

    Parameters:

    str - the String to get the characters from, may be null

    pos - the position to start from, negative treated as zero

    len - the length of the required String

    Returns:

    the middle characters, null if null String input

    6.其他截取方法

        截取到等于第二个参数的字符串为止
        System.out.println(StringUtils.substringBefore("说点什么好呢", "好"));
        从左往右查到相等的字符开始,保留后边的,不包含等于的字符。本例:什么好呢
        System.out.println(StringUtils.substringAfter("说点什么好呢", "点"));
        这个也是截取到相等的字符,但是是从右往左.本例结果:说点什么好
        System.out.println(StringUtils.substringBeforeLast("说点什么好点呢", "点"));
        这个截取同上是从右往左。但是保留右边的字符
        System.out.println(StringUtils.substringAfterLast("说点什么好点呢?", "点"));
        截取查找到第一次的位置,和第二次的位置中间的字符。如果没找到第二个返回null。本例结果:2010世界杯在
        System.out.println(StringUtils.substringBetween("南非2010世界杯在南非,在南非", "南非"));
        返回参数二和参数三中间的字符串,返回数组形式
        ArrayToList(StringUtils.substringsBetween("[a][b][c]", "[", "]"));

    .contains

    1.检查是否查到,返回boolean,null返回假

    public static boolean contains(CharSequence seq,

                   CharSequence searchSeq)

    Checks if CharSequence contains a search CharSequence, handling null. This method uses String.indexOf(String) if possible.

    A null CharSequence will return false.

     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

     

    Parameters:

    seq - the CharSequence to check, may be null

    searchSeq - the CharSequence to find, may be null

    Returns:

    true if the CharSequence contains the search CharSequence, false if not or null string input

    Since:

    2.0, 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)

    2.containsIgnoreCase

    检查是否查到,返回boolean,null返回假,不区分大小写

    public static boolean containsIgnoreCase(CharSequence str,

                             CharSequence searchStr)

    Checks if CharSequence contains a search CharSequence irrespective of case, handling null. Case-insensitivity is defined as by String.equalsIgnoreCase(String).

    A null CharSequence will return false.

     StringUtils.containsIgnoreCase(null, *) = false

     StringUtils.containsIgnoreCase(*, null) = false

     StringUtils.containsIgnoreCase("", "") = true

    StringUtils.containsIgnoreCase("abc", "") = true

    StringUtils.containsIgnoreCase("abc", "a") = true

     StringUtils.containsIgnoreCase("abc", "z") = false

     StringUtils.containsIgnoreCase("abc", "A") = true

    StringUtils.containsIgnoreCase("abc", "Z") = false

     

    Parameters:

    str - the CharSequence to check, may be null

    searchStr - the CharSequence to find, may be null

    Returns:

    true if the CharSequence contains the search CharSequence irrespective of case or false if not or null string input

    Since:

    3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)

    3.containsWhitespace

    检查是否有含有空格,返回boolean

    public static boolean containsWhitespace(CharSequence seq)

    Check whether the given CharSequence contains any whitespace characters.

    Parameters:

    seq - the CharSequence to check (may be null)

    Returns:

    true if the CharSequence is not empty and contains at least 1 whitespace character

    Since:

    3.0

    See Also:

    Character.isWhitespace(char)

  • 相关阅读:
    被标记为事务的方法互相调用的坑(上)
    几种实现延时任务的方式(三)
    几种实现延时任务的方式(二)
    几种实现延时任务的方式(一)
    Windows AD日志分析平台WatchAD安装教程
    Django单元测试中Fixtures用法
    威联通(NAS)搭建个人图床
    centOS极简安装并启动ngnix
    【JS档案揭秘】第一集 内存泄漏与垃圾回收
    【JS简洁之道小技巧】第一期 扁平化数组
  • 原文地址:https://www.cnblogs.com/cl1255674805/p/5832743.html
Copyright © 2020-2023  润新知