StringUtils工具类方法汇总1(空校验、去字符处理、字符串比较)

标签: StringUtils
11人阅读 评论(0) 收藏 举报
分类:

       Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便。StringUtils类在操作字符串时,即使操作的为null值也是安全的,不会报NullPointerException,这一点在后面的例子中再具体说明。因此,在操作字符串时使用StringUtils相比使用原生的String会更加安全。

1.字符串空校验

   /**
     * 检查字符串是否为空 ("") 或 null
     * StringUtils.isEmpty(null)      = true
     * StringUtils.isEmpty("")        = true
     * StringUtils.isEmpty(" ")       = false
     * StringUtils.isEmpty("bob")     = false
     * StringUtils.isEmpty("  bob  ") = false
     */
    public static boolean isEmpty(String str) {
        return str == null || str.length() == 0;
    }
    /**
     *  检查字符串是否为非空
     * StringUtils.isNotEmpty(null)      = false
     * StringUtils.isNotEmpty("")        = false
     * StringUtils.isNotEmpty(" ")       = true
     * StringUtils.isNotEmpty("bob")     = true
     * StringUtils.isNotEmpty("  bob  ") = true
     */
    public static boolean isNotEmpty(String str) {
        return !StringUtils.isEmpty(str);
    }
    /**
     * 检验字符串是否是null,空或空格
     * StringUtils.isBlank(null)      = true
     * StringUtils.isBlank("")        = true
     * StringUtils.isBlank(" ")       = true
     * StringUtils.isBlank("bob")     = false
     * StringUtils.isBlank("  bob  ") = false
     */
    public static boolean isBlank(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if ((Character.isWhitespace(str.charAt(i)) == false)) {
                return false;
            }
        }
        return true;
    }
    /**
     * 检验字符串是否是非null,非空且非空格
     * StringUtils.isNotBlank(null)      = false
     * StringUtils.isNotBlank("")        = false
     * StringUtils.isNotBlank(" ")       = false
     * StringUtils.isNotBlank("bob")     = true
     * StringUtils.isNotBlank("  bob  ") = true
     * </pre>
     */
    public static boolean isNotBlank(String str) {
        return !StringUtils.isBlank(str);
    }

2.去字符处理

    /**
     * 从该字符串的两端删除控制字符,返回值为null则处理为(“”),返回值为(“”)则处理为(“”)(@link #trimToEmpty(String))
     * StringUtils.clean(null)          = ""
     * StringUtils.clean("")            = ""
     * StringUtils.clean("abc")         = "abc"
     * StringUtils.clean("    abc    ") = "abc"
     * StringUtils.clean("     ")       = ""
     */
    public static String clean(String str) {
        return str == null ? EMPTY : str.trim();
    }
    /**
     * 从该字符串的两端删除控制字符,返回值为null则处理为null,返回值为("")则处理为("")
     * StringUtils.trim(null)          = null
     * StringUtils.trim("")            = ""
     * StringUtils.trim("     ")       = ""
     * StringUtils.trim("abc")         = "abc"
     * StringUtils.trim("    abc    ") = "abc"
     */
    public static String trim(String str) {
        return str == null ? null : str.trim();
    }
    /**
     * 从该字符串的两端删除控制字符,返回值为null或(“”)则处理为null
     * StringUtils.trimToNull(null)          = null
     * StringUtils.trimToNull("")            = null
     * StringUtils.trimToNull("     ")       = null
     * StringUtils.trimToNull("abc")         = "abc"
     * StringUtils.trimToNull("    abc    ") = "abc"
     */
    public static String trimToNull(String str) {
        String ts = trim(str);
        return isEmpty(ts) ? null : ts;
    }
    /**
     * 从该字符串的两端删除控制字符,返回值为null则处理为(""),返回值为("")则处理为("")
     * StringUtils.trimToEmpty(null)          = ""
     * StringUtils.trimToEmpty("")            = ""
     * StringUtils.trimToEmpty("     ")       = ""
     * StringUtils.trimToEmpty("abc")         = "abc"
     * StringUtils.trimToEmpty("    abc    ") = "abc"
     */
    public static String trimToEmpty(String str) {
        return str == null ? EMPTY : str.trim();
    }
    /**
     * 从字符串的开头和结尾删除空格,返回值为null则处理为null,返回值为(“”)则处理为(“”)
     * StringUtils.strip(null)     = null
     * StringUtils.strip("")       = ""
     * StringUtils.strip("   ")    = ""
     * StringUtils.strip("abc")    = "abc"
     * StringUtils.strip("  abc")  = "abc"
     * StringUtils.strip("abc  ")  = "abc"
     * StringUtils.strip(" abc ")  = "abc"
     * StringUtils.strip(" ab c ") = "ab c"
     */
    public static String strip(String str) {
        return strip(str, null);
    }
    /**
     * 从字符串的开头和结尾删除空格,返回值为null则处理为null,返回值为("")则处理为null
     * StringUtils.stripToNull(null)     = null
     * StringUtils.stripToNull("")       = null
     * StringUtils.stripToNull("   ")    = null
     * StringUtils.stripToNull("abc")    = "abc"
     * StringUtils.stripToNull("  abc")  = "abc"
     * StringUtils.stripToNull("abc  ")  = "abc"
     * StringUtils.stripToNull(" abc ")  = "abc"
     * StringUtils.stripToNull(" ab c ") = "ab c"
     */
    public static String stripToNull(String str) {
        if (str == null) {
            return null;
        }
        str = strip(str, null);
        return str.length() == 0 ? null : str;
    }
    /**
     * 从字符串的开头和结尾删除空格,返回值为null则处理为(""),返回值为("")则处理为("")
     * StringUtils.stripToEmpty(null)     = ""
     * StringUtils.stripToEmpty("")       = ""
     * StringUtils.stripToEmpty("   ")    = ""
     * StringUtils.stripToEmpty("abc")    = "abc"
     * StringUtils.stripToEmpty("  abc")  = "abc"
     * StringUtils.stripToEmpty("abc  ")  = "abc"
     * StringUtils.stripToEmpty(" abc ")  = "abc"
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
     */
    public static String stripToEmpty(String str) {
        return str == null ? EMPTY : strip(str, null);
    }
   /**
     * 从一个字符串的开始和结束中删除任何一组字符。这与{@link String#trim()}类似,但允许控制字符的去除。
     * StringUtils.strip(null, *)          = null
     * StringUtils.strip("", *)            = ""
     * StringUtils.strip("abc", null)      = "abc"
     * StringUtils.strip("  abc", null)    = "abc"
     * StringUtils.strip("abc  ", null)    = "abc"
     * StringUtils.strip(" abc ", null)    = "abc"
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
     */
    public static String strip(String str, String stripChars) {
        if (isEmpty(str)) {
            return str;
        }
        str = stripStart(str, stripChars);
        return stripEnd(str, stripChars);
    }
   /**
     * 从一个字符串的开始和结束中删除任何一组字符,去除前端的控制符。
     * StringUtils.stripStart(null, *)          = null
     * StringUtils.stripStart("", *)            = ""
     * StringUtils.stripStart("abc", "")        = "abc"
     * StringUtils.stripStart("abc", null)      = "abc"
     * StringUtils.stripStart("  abc", null)    = "abc"
     * StringUtils.stripStart("abc  ", null)    = "abc  "
     * StringUtils.stripStart(" abc ", null)    = "abc "
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
     */
    public static String stripStart(String str, String stripChars) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return str;
        }
        int start = 0;
        if (stripChars == null) {
            while ((start != strLen) && Character.isWhitespace(str.charAt(start))) {
                start++;
            }
        } else if (stripChars.length() == 0) {
            return str;
        } else {
            while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND)) {
                start++;
            }
        }
        return str.substring(start);
    }
    /**
     * 从一个字符串的开始和结束中删除任何一组字符,去除后端的控制符。
     * StringUtils.stripEnd(null, *)          = null
     * StringUtils.stripEnd("", *)            = ""
     * StringUtils.stripEnd("abc", "")        = "abc"
     * StringUtils.stripEnd("abc", null)      = "abc"
     * StringUtils.stripEnd("  abc", null)    = "  abc"
     * StringUtils.stripEnd("abc  ", null)    = "abc"
     * StringUtils.stripEnd(" abc ", null)    = " abc"
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
     * StringUtils.stripEnd("120.00", ".0")   = "12"
     */
    public static String stripEnd(String str, String stripChars) {
        int end;
        if (str == null || (end = str.length()) == 0) {
            return str;
        }

        if (stripChars == null) {
            while ((end != 0) && Character.isWhitespace(str.charAt(end - 1))) {
                end--;
            }
        } else if (stripChars.length() == 0) {
            return str;
        } else {
            while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND)) {
                end--;
            }
        }
        return str.substring(0, end);
    }

3.去除数组对象中的字符处理

    /**
     * 将数组中的每个字符串两端的空格删除。
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
     * StringUtils.stripAll(null)             = null
     * StringUtils.stripAll([])               = []
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
     */
    public static String[] stripAll(String[] strs) {
        return stripAll(strs, null);
    }
    /**
     * 将数组中的每个字符串的开头和结尾开始删除任何一组字符。
     * StringUtils.stripAll(null, *)                = null
     * StringUtils.stripAll([], *)                  = []
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
     *
     * @param strs  从中删除字符的数组可能为空
     * @param stripChars  要删除的字符,空值视为空白
     */
    public static String[] stripAll(String[] strs, String stripChars) {
        int strsLen;
        if (strs == null || (strsLen = strs.length) == 0) {
            return strs;
        }
        String[] newArr = new String[strsLen];
        for (int i = 0; i < strsLen; i++) {
            newArr[i] = strip(strs[i], stripChars);
        }
        return newArr;
    }

4.字符串比较

    /**
     * 比较两个字符串,如果它们相等,则返回 true 。
     * 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
     */
    public static boolean equals(String str1, String str2) {
        return str1 == null ? str2 == null : str1.equals(str2);
    }
    /**
     * 比较两个字符串,如果它们相同,则返回 true ,忽略大小写。
     *
     * <p><code>null</code>s are handled without exceptions. Two <code>null</code>
     * references are considered equal. Comparison is case insensitive.</p>
     *
     * <pre>
     * 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
     * </pre>
     *
     * @see java.lang.String#equalsIgnoreCase(String)
     * @param str1  the first String, may be null
     * @param str2  the second String, may be null
     * @return <code>true</code> if the Strings are equal, case insensitive, or
     *  both <code>null</code>
     */
    public static boolean equalsIgnoreCase(String str1, String str2) {
        return str1 == null ? str2 == null : str1.equalsIgnoreCase(str2);
    }

查看评论

StringUtils工具类对于字符串是否为空的校验

在论坛上看到有小伙伴问到这个相关的问题,决定自己研究一下。 1.StringUtils.isEmpty()方法源码 public static boolean isEmpty(String str)...
  • qq_27987445
  • qq_27987445
  • 2017-12-24 00:42:55
  • 348

Spring StringUtils类中几个有用的字符串处理方法

在Spring中有一个StringUtils类,该类提供了丰富的功能,下面说说字符串替换功能 /* *inString 待处理的字符, *oldPattern,要替换的pattern *new...
  • chunqiuwei
  • chunqiuwei
  • 2012-05-03 22:42:04
  • 6590

StringUtil工具类之去除所有的空白字符

/** * 移除空白字符,如果为null则改为“” *Summary: * removeTrim() * @param pwd * @return * @throws Exceptio...
  • liu22985342
  • liu22985342
  • 2014-06-09 15:05:27
  • 1463

StringUtil工具类 之 时间格式化函数

StringUtil工具类 之 时间格式化函数
  • liu22985342
  • liu22985342
  • 2014-06-05 11:54:11
  • 823

StringUtils检查字符串是否空或是null

package com.test;import org.apache.commons.lang.StringUtils;public class Test {public static void ma...
  • u012269267
  • u012269267
  • 2016-06-01 16:37:11
  • 7106

字符串工具类-StringUtils

在项目中哪里会用到,看下图代码: @RequestMapping(value = "/save", method = RequestMethod.POST) @ResponseBody ...
  • m0_37499059
  • m0_37499059
  • 2018-01-28 22:06:41
  • 154

StringUtils之equals分析

打开org.apache.commons.lang包下面的StringUtils.class源码 查看源码 /** * Compares two Strings, returning ...
  • Mint6
  • Mint6
  • 2017-09-13 14:42:24
  • 2814

【StringUtils】判断字符串是否有值,判断多个字符串是否相等

package com.dream.makerspace.utils; import android.text.*; import android.text.style.CharacterStyl...
  • dodod2012
  • dodod2012
  • 2016-06-24 17:36:48
  • 2353

StringUtils 工具类的常用方法

StringUtils 源码,使用的是commons-lang3-3.1包。 下载地址 http://commons.apache.org/lang/download_lang.cgi ...
  • guoyankun
  • guoyankun
  • 2014-02-12 08:51:16
  • 2823

javaScript字符串工具类StringUtils

StringUtils = { isEmpty: function(input) { return input == null || input == ''; }, isNotEmp...
  • LinBilin_
  • LinBilin_
  • 2017-06-20 18:31:39
  • 1079
    个人资料
    等级:
    访问量: 560
    积分: 125
    排名: 119万+
    文章分类