String常用的工具類


一、常用的String 類

org.apache.commons.lang3包下的StringUtils類

二、自定義工具類(在StringUtils基礎上改裝)

import org.apache.commons.lang3.ArrayUtils;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtils {

    /**
     * 空字符串.
     */
    public static final String EMPTY_STRING = "";

    /**
     * TODO 去除字符串中的html標簽.
     * <pre>
     * UnCommonStringUtils.replaceHtml(null)  = ""
     * UnCommonStringUtils.replaceHtml("")    = ""
     * UnCommonStringUtils.replaceHtml("<td>content</td>") = "content"
     * UnCommonStringUtils.replaceHtml("<>content</td>") = ""
     * </pre>
     *
     * @param html 待處理的字符串,可以為 null
     * @return String 處理過的字符串,若輸入為null則返回 null
     * @since 1.0
     */
    public static String replaceHtml(String html) {
        if (org.apache.commons.lang3.StringUtils.isBlank(html)) {
            return UnCommonStringUtils.EMPTY_STRING;
        }
        String regEx = "<.+?>";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(html);
        String s = m.replaceAll(UnCommonStringUtils.EMPTY_STRING);
        return s;
    }


    /**
     * TODO 字符串轉換為 Integer 數組.
     * UnCommonStringUtils.toIntegerArray(null, ",")     == []
     * UnCommonStringUtils.toIntegerArray("", ",")       == []
     * UnCommonStringUtils.toIntegerArray("  ", ",")     == []
     * UnCommonStringUtils.toIntegerArray("2,3,4", ",")  == [2,3,4]
     *
     * @param val   字符串
     * @param regex 分隔符
     * @return Integer[] Integer數組
     * @throws NumberFormatException
     * @since 1.0
     */
    public static Integer[] toIntegerArray(String val, String regex) throws NumberFormatException {
        if (isBlank(val)) {
            return new Integer[0];
        } else {
            String[] valArr = val.split(regex);
            int arrLen = valArr.length;
            Integer[] it = new Integer[arrLen];
            for (int i = 0; i < arrLen; i++) {
                it[i] = Integer.parseInt(valArr[i].trim());
            }
            return it;
        }
    }

    /**
     * TODO 數組轉成字符串,可在打印日志的時候用.
     *
     * @param args 內容數組
     * @return 轉換結果(不同的數據項用半角逗號隔開)
     */
    public static String argsToString(Object[] args) {
        StringBuilder s = new StringBuilder("args:[");
        for (Object o : args) {
            s.append(o).append(",");
        }
        s.append("]");

        return s.toString();
    }

    /**
     * TODO 將每一個元素都為字符串的 list 轉換為以逗號分割的字符串.
     *
     * @param list 待處理的 list
     * @return String 處理過的以逗號分隔的字符串
     * @since 1.0
     */
    public static String argsToString(List<String> list) {
        StringBuilder s = new StringBuilder();
        if (list == null || list.size() == 0) {
            return UnCommonStringUtils.EMPTY_STRING;
        } else {
            s.append(list.get(0));
            for (int i = 1; i < list.size(); i++) {
                s.append(",").append(list.get(i));
            }
            return s.toString();
        }
    }

    /**
     * TODO 判斷字符串數組是否有字符串為空或者空字符串.
     * UnCommonStringUtils.isNullOrEmpty(null)             = true
     * UnCommonStringUtils.isNullOrEmpty(null, "foo")      = true
     * UnCommonStringUtils.isNullOrEmpty("", "bar")        = true
     * UnCommonStringUtils.isNullOrEmpty("bob", "")        = true
     * UnCommonStringUtils.isNullOrEmpty("  bob  ", null)  = true
     * UnCommonStringUtils.isNullOrEmpty(" ", "bar")       = false
     * UnCommonStringUtils.isNullOrEmpty("foo", "bar")     = false
     *
     * @param str 需要驗證的字符串
     * @return Boolean 若字符串數組中包含空或者空字符串,則返回true
     * @since 1.0
     */
    public static Boolean isNullOrEmpty(String... str) {
        if (ArrayUtils.isEmpty(str)) {
            return true;
        } else {
            for (String s : str) {
                if (s == null || s.isEmpty()) {
                    return true;
                }
            }
            return false;
        }
    }

    /**
     * TODO 判斷字符串是否非空、非空字符串或者不僅僅由空白字符組成.
     * UnCommonStringUtils.isNotBlank(null)      = false
     * UnCommonStringUtils.isNotBlank("")        = false
     * UnCommonStringUtils.isNotBlank(" ")       = false
     * UnCommonStringUtils.isNotBlank("bob")     = true
     * UnCommonStringUtils.isNotBlank("  bob  ") = true
     *
     * @param str 需要驗證的字符串,可以為null
     * @return boolean 若非空、非空字符串或者不僅僅由空白字符組成,則返回true
     * @since 1.0
     */
    public static boolean isNotBlank(String str) {
        return org.apache.commons.lang3.StringUtils.isNotBlank(str);
    }

    /**
     * TODO 判斷字符串是否為非空或者非空字符串.
     * UnCommonStringUtils.isNotEmpty(null)      = false
     * UnCommonStringUtils.isNotEmpty("")        = false
     * UnCommonStringUtils.isNotEmpty(" ")       = true
     * UnCommonStringUtils.isNotEmpty("bob")     = true
     * UnCommonStringUtils.isNotEmpty("  bob  ") = true
     * </pre>
     *
     * @param str 需要驗證的字符串,可以為null
     * @return boolean 若非空或者非空字符串,則返回true
     * @since 1.0
     */
    public static boolean isNotEmpty(String str) {
        return org.apache.commons.lang3.StringUtils.isNotEmpty(str);
    }


    /**
     * TODO 判斷字符串是否為空或者空字符串.
     * UnCommonStringUtils.isEmpty(null)      = true
     * UnCommonStringUtils.isEmpty("")        = true
     * UnCommonStringUtils.isEmpty(" ")       = false
     * UnCommonStringUtils.isEmpty("bob")     = false
     * UnCommonStringUtils.isEmpty("  bob  ") = false
     *
     * @param str 需要驗證的字符串
     * @return boolean 若字符串為空或者空字符串,返回true
     * @since 1.0
     */
    public static boolean isEmpty(String str) {
        return org.apache.commons.lang3.StringUtils.isEmpty(str);
    }

    /**
     * TODO 判斷字符串是否為空、空字符串或者僅由空白字符組成.
     * UnCommonStringUtils.isBlank(null)      = true
     * UnCommonStringUtils.isBlank("")        = true
     * UnCommonStringUtils.isBlank(" ")       = true
     * UnCommonStringUtils.isBlank("bob")     = false
     * UnCommonStringUtils.isBlank("  bob  ") = false
     *
     * @param str 需要驗證的字符串,可以為null
     * @return boolean 若為空、空字符串或者僅由空白字符組成,則返回true
     * @since 1.0
     */
    public static boolean isBlank(String str) {
        return org.apache.commons.lang3.StringUtils.isBlank(str);
    }

    /**
     * TODO 移除字符串開頭和結尾的空白字符包括空格、制表符等.
     * UnCommonStringUtils.trim(null)          = null
     * UnCommonStringUtils.trim("")            = ""
     * UnCommonStringUtils.trim("     ")       = ""
     * UnCommonStringUtils.trim("abc")         = "abc"
     * UnCommonStringUtils.trim("    abc    ") = "abc"
     *
     * @param str 需要處理的字符串,可以為空
     * @return String 處理過的字符串,若輸入的字符串為空,則返回null
     * @since 1.0
     */
    public static String trim(String str) {
        return org.apache.commons.lang3.StringUtils.trim(str);
    }

    /**
     * TODO 比較兩個字符串是否相等.
     * <pre>
     * UnCommonStringUtils.equals(null, null)   = true
     * UnCommonStringUtils.equals(null, "abc")  = false
     * UnCommonStringUtils.equals("abc", null)  = false
     * UnCommonStringUtils.equals("abc", "abc") = true
     * UnCommonStringUtils.equals("abc", "ABC") = false
     * </pre>
     *
     * @param str1 第一個字符串
     * @param str2 第二個字符串
     * @return boolean 若兩個字符串相等則返回true
     * @since 1.0
     */
    public static boolean equals(String str1, String str2) {
        return org.apache.commons.lang3.StringUtils.equals(str1, str2);
    }

    /**
     * TODO  忽略大小寫,比較兩個字符串是否相等,若相等則返回true,反之則返回false.
     * <pre>
     * UnCommonStringUtils.equalsIgnoreCase(null, null)   = true
     * UnCommonStringUtils.equalsIgnoreCase(null, "abc")  = false
     * UnCommonStringUtils.equalsIgnoreCase("abc", null)  = false
     * UnCommonStringUtils.equalsIgnoreCase("abc", "abc") = true
     * UnCommonStringUtils.equalsIgnoreCase("abc", "ABC") = true
     * </pre>
     *
     * @param str1 第一個字符串
     * @param str2 第二個字符串
     * @return boolean 忽略大小寫,若兩個字符串相等,則返回ture
     * @since 1.0
     */
    public static boolean equalsIgnoreCase(String str1, String str2) {
        return org.apache.commons.lang3.StringUtils.equalsIgnoreCase(str1, str2);
    }

    /**
     * TODO 將字符串轉化為大寫.
     * <pre>
     * UnCommonStringUtils.upperCase(null)  = null
     * UnCommonStringUtils.upperCase("")    = ""
     * UnCommonStringUtils.upperCase("aBc") = "ABC"
     * </pre>
     *
     * @param str 需要轉化的字符串
     * @return String 轉化后的字符串,若輸入null則返回null
     * @since 1.0
     */
    public static String upperCase(String str) {
        return org.apache.commons.lang3.StringUtils.upperCase(str);
    }

    /**
     * TODO  將字符串轉化為小寫.
     * <p>
     * <pre>
     * UnCommonStringUtils.lowerCase(null)  = null
     * UnCommonStringUtils.lowerCase("")    = ""
     * UnCommonStringUtils.lowerCase("aBc") = "abc"
     * </pre>
     *
     * @param str 需要轉化的字符串
     * @return String 轉化后的字符串,若輸入null則返回null
     * @since 1.0
     */
    public static String lowerCase(String str) {
        return org.apache.commons.lang3.StringUtils.lowerCase(str);
    }

    /**
     * TODO  htmlEscape(html轉義)
     *
     * @param content 待轉義字符串
     * @return String 轉義后字符串
     * @since 1.0
     */
    public static String htmlEscape(String content) {
        if (isNullOrEmpty(content)) {
            return EMPTY_STRING;
        }
        String html = content;
        html = html.replaceAll("&amp;", "&");
        // "
        html = html.replace("&quot;", "\"");
        // 替換跳格
        html = html.replace("&nbsp;&nbsp;", "\t");
        // 替換空格
        html = html.replace("&nbsp;", " ");
        html = html.replace("&lt;", "<");
        html = html.replaceAll("&gt;", ">");
        return html;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM