请选择 进入手机版 | 继续访问电脑版

热点推荐

查看: 178|回复: 2

【Java工具类】基于StringUtils的String常用工具类

[复制链接]
  • TA的每日心情
    开心
    昨天 14:29
  • 签到天数: 287 天

    [LV.8]以坛为家I

    3万

    主题

    3万

    帖子

    10万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    104598
    发表于 2019-10-3 01:03:17 | 显示全部楼层 |阅读模式
    Java吧[java8.com]整理 在StringUtils基础上改装 org.apache.commons.lang3包下的StringUtils类


    Java源码:
    1. import org.apache.commons.lang3.ArrayUtils;
    2. import java.util.List;
    3. import java.util.regex.Matcher;
    4. import java.util.regex.Pattern;
    5. public class StringUtils {
    6.     /**
    7.      * 空字符串.
    8.      */
    9.     public static final String EMPTY_STRING = "";
    10.     /**
    11.      * TODO 去除字符串中的html标签.
    12.      * <pre>
    13.      * UnCommonStringUtils.replaceHtml(null)  = ""
    14.      * UnCommonStringUtils.replaceHtml("")    = ""
    15.      * UnCommonStringUtils.replaceHtml("<td>content</td>") = "content"
    16.      * UnCommonStringUtils.replaceHtml("<>content</td>") = ""
    17.      * </pre>
    18.      *
    19.      * @param html 待处理的字符串,可以为 null
    20.      * @return String 处理过的字符串,若输入为null则返回 null
    21.      * @since 1.0
    22.      */
    23.     public static String replaceHtml(String html) {
    24.         if (org.apache.commons.lang3.StringUtils.isBlank(html)) {
    25.             return UnCommonStringUtils.EMPTY_STRING;
    26.         }
    27.         String regEx = "<.+?>";
    28.         Pattern p = Pattern.compile(regEx);
    29.         Matcher m = p.matcher(html);
    30.         String s = m.replaceAll(UnCommonStringUtils.EMPTY_STRING);
    31.         return s;
    32.     }
    33.     /**
    34.      * TODO 字符串转换为 Integer 数组.
    35.      * UnCommonStringUtils.toIntegerArray(null, ",")     == []
    36.      * UnCommonStringUtils.toIntegerArray("", ",")       == []
    37.      * UnCommonStringUtils.toIntegerArray("  ", ",")     == []
    38.      * UnCommonStringUtils.toIntegerArray("2,3,4", ",")  == [2,3,4]
    39.      *
    40.      * @param val   字符串
    41.      * @param regex 分隔符
    42.      * @return Integer[] Integer数组
    43.      * @throws NumberFormatException
    44.      * @since 1.0
    45.      */
    46.     public static Integer[] toIntegerArray(String val, String regex) throws NumberFormatException {
    47.         if (isBlank(val)) {
    48.             return new Integer[0];
    49.         } else {
    50.             String[] valArr = val.split(regex);
    51.             int arrLen = valArr.length;
    52.             Integer[] it = new Integer[arrLen];
    53.             for (int i = 0; i < arrLen; i++) {
    54.                 it[i] = Integer.parseInt(valArr[i].trim());
    55.             }
    56.             return it;
    57.         }
    58.     }
    59.     /**
    60.      * TODO 数组转成字符串,可在打印日志的时候用.
    61.      *
    62.      * @param args 内容数组
    63.      * @return 转换结果(不同的数据项用半角逗号隔开)
    64.      */
    65.     public static String argsToString(Object[] args) {
    66.         StringBuilder s = new StringBuilder("args:[");
    67.         for (Object o : args) {
    68.             s.append(o).append(",");
    69.         }
    70.         s.append("]");
    71.         return s.toString();
    72.     }
    73.     /**
    74.      * TODO 将每一个元素都为字符串的 list 转换为以逗号分割的字符串.
    75.      *
    76.      * @param list 待处理的 list
    77.      * @return String 处理过的以逗号分隔的字符串
    78.      * @since 1.0
    79.      */
    80.     public static String argsToString(List<String> list) {
    81.         StringBuilder s = new StringBuilder();
    82.         if (list == null || list.size() == 0) {
    83.             return UnCommonStringUtils.EMPTY_STRING;
    84.         } else {
    85.             s.append(list.get(0));
    86.             for (int i = 1; i < list.size(); i++) {
    87.                 s.append(",").append(list.get(i));
    88.             }
    89.             return s.toString();
    90.         }
    91.     }
    92.     /**
    93.      * TODO 判断字符串数组是否有字符串为空或者空字符串.
    94.      * UnCommonStringUtils.isNullOrEmpty(null)             = true
    95.      * UnCommonStringUtils.isNullOrEmpty(null, "foo")      = true
    96.      * UnCommonStringUtils.isNullOrEmpty("", "bar")        = true
    97.      * UnCommonStringUtils.isNullOrEmpty("bob", "")        = true
    98.      * UnCommonStringUtils.isNullOrEmpty("  bob  ", null)  = true
    99.      * UnCommonStringUtils.isNullOrEmpty(" ", "bar")       = false
    100.      * UnCommonStringUtils.isNullOrEmpty("foo", "bar")     = false
    101.      *
    102.      * @param str 需要验证的字符串
    103.      * @return Boolean 若字符串数组中包含空或者空字符串,则返回true
    104.      * @since 1.0
    105.      */
    106.     public static Boolean isNullOrEmpty(String... str) {
    107.         if (ArrayUtils.isEmpty(str)) {
    108.             return true;
    109.         } else {
    110.             for (String s : str) {
    111.                 if (s == null || s.isEmpty()) {
    112.                     return true;
    113.                 }
    114.             }
    115.             return false;
    116.         }
    117.     }
    118.     /**
    119.      * TODO 判断字符串是否非空、非空字符串或者不仅仅由空白字符组成.
    120.      * UnCommonStringUtils.isNotBlank(null)      = false
    121.      * UnCommonStringUtils.isNotBlank("")        = false
    122.      * UnCommonStringUtils.isNotBlank(" ")       = false
    123.      * UnCommonStringUtils.isNotBlank("bob")     = true
    124.      * UnCommonStringUtils.isNotBlank("  bob  ") = true
    125.      *
    126.      * @param str 需要验证的字符串,可以为null
    127.      * @return boolean 若非空、非空字符串或者不仅仅由空白字符组成,则返回true
    128.      * @since 1.0
    129.      */
    130.     public static boolean isNotBlank(String str) {
    131.         return org.apache.commons.lang3.StringUtils.isNotBlank(str);
    132.     }
    133.     /**
    134.      * TODO 判断字符串是否为非空或者非空字符串.
    135.      * UnCommonStringUtils.isNotEmpty(null)      = false
    136.      * UnCommonStringUtils.isNotEmpty("")        = false
    137.      * UnCommonStringUtils.isNotEmpty(" ")       = true
    138.      * UnCommonStringUtils.isNotEmpty("bob")     = true
    139.      * UnCommonStringUtils.isNotEmpty("  bob  ") = true
    140.      * </pre>
    141.      *
    142.      * @param str 需要验证的字符串,可以为null
    143.      * @return boolean 若非空或者非空字符串,则返回true
    144.      * @since 1.0
    145.      */
    146.     public static boolean isNotEmpty(String str) {
    147.         return org.apache.commons.lang3.StringUtils.isNotEmpty(str);
    148.     }
    149.     /**
    150.      * TODO 判断字符串是否为空或者空字符串.
    151.      * UnCommonStringUtils.isEmpty(null)      = true
    152.      * UnCommonStringUtils.isEmpty("")        = true
    153.      * UnCommonStringUtils.isEmpty(" ")       = false
    154.      * UnCommonStringUtils.isEmpty("bob")     = false
    155.      * UnCommonStringUtils.isEmpty("  bob  ") = false
    156.      *
    157.      * @param str 需要验证的字符串
    158.      * @return boolean 若字符串为空或者空字符串,返回true
    159.      * @since 1.0
    160.      */
    161.     public static boolean isEmpty(String str) {
    162.         return org.apache.commons.lang3.StringUtils.isEmpty(str);
    163.     }
    164.     /**
    165.      * TODO 判断字符串是否为空、空字符串或者仅由空白字符组成.
    166.      * UnCommonStringUtils.isBlank(null)      = true
    167.      * UnCommonStringUtils.isBlank("")        = true
    168.      * UnCommonStringUtils.isBlank(" ")       = true
    169.      * UnCommonStringUtils.isBlank("bob")     = false
    170.      * UnCommonStringUtils.isBlank("  bob  ") = false
    171.      *
    172.      * @param str 需要验证的字符串,可以为null
    173.      * @return boolean 若为空、空字符串或者仅由空白字符组成,则返回true
    174.      * @since 1.0
    175.      */
    176.     public static boolean isBlank(String str) {
    177.         return org.apache.commons.lang3.StringUtils.isBlank(str);
    178.     }
    179.     /**
    180.      * TODO 移除字符串开头和结尾的空白字符包括空格、制表符等.
    181.      * UnCommonStringUtils.trim(null)          = null
    182.      * UnCommonStringUtils.trim("")            = ""
    183.      * UnCommonStringUtils.trim("     ")       = ""
    184.      * UnCommonStringUtils.trim("abc")         = "abc"
    185.      * UnCommonStringUtils.trim("    abc    ") = "abc"
    186.      *
    187.      * @param str 需要处理的字符串,可以为空
    188.      * @return String 处理过的字符串,若输入的字符串为空,则返回null
    189.      * @since 1.0
    190.      */
    191.     public static String trim(String str) {
    192.         return org.apache.commons.lang3.StringUtils.trim(str);
    193.     }
    194.     /**
    195.      * TODO 比较两个字符串是否相等.
    196.      * <pre>
    197.      * UnCommonStringUtils.equals(null, null)   = true
    198.      * UnCommonStringUtils.equals(null, "abc")  = false
    199.      * UnCommonStringUtils.equals("abc", null)  = false
    200.      * UnCommonStringUtils.equals("abc", "abc") = true
    201.      * UnCommonStringUtils.equals("abc", "ABC") = false
    202.      * </pre>
    203.      *
    204.      * @param str1 第一个字符串
    205.      * @param str2 第二个字符串
    206.      * @return boolean 若两个字符串相等则返回true
    207.      * @since 1.0
    208.      */
    209.     public static boolean equals(String str1, String str2) {
    210.         return org.apache.commons.lang3.StringUtils.equals(str1, str2);
    211.     }
    212.     /**
    213.      * TODO  忽略大小写,比较两个字符串是否相等,若相等则返回true,反之则返回false.
    214.      * <pre>
    215.      * UnCommonStringUtils.equalsIgnoreCase(null, null)   = true
    216.      * UnCommonStringUtils.equalsIgnoreCase(null, "abc")  = false
    217.      * UnCommonStringUtils.equalsIgnoreCase("abc", null)  = false
    218.      * UnCommonStringUtils.equalsIgnoreCase("abc", "abc") = true
    219.      * UnCommonStringUtils.equalsIgnoreCase("abc", "ABC") = true
    220.      * </pre>
    221.      *
    222.      * @param str1 第一个字符串
    223.      * @param str2 第二个字符串
    224.      * @return boolean 忽略大小写,若两个字符串相等,则返回ture
    225.      * @since 1.0
    226.      */
    227.     public static boolean equalsIgnoreCase(String str1, String str2) {
    228.         return org.apache.commons.lang3.StringUtils.equalsIgnoreCase(str1, str2);
    229.     }
    230.     /**
    231.      * TODO 将字符串转化为大写.
    232.      * <pre>
    233.      * UnCommonStringUtils.upperCase(null)  = null
    234.      * UnCommonStringUtils.upperCase("")    = ""
    235.      * UnCommonStringUtils.upperCase("aBc") = "ABC"
    236.      * </pre>
    237.      *
    238.      * @param str 需要转化的字符串
    239.      * @return String 转化后的字符串,若输入null则返回null
    240.      * @since 1.0
    241.      */
    242.     public static String upperCase(String str) {
    243.         return org.apache.commons.lang3.StringUtils.upperCase(str);
    244.     }
    245.     /**
    246.      * TODO  将字符串转化为小写.
    247.      * <p>
    248.      * <pre>
    249.      * UnCommonStringUtils.lowerCase(null)  = null
    250.      * UnCommonStringUtils.lowerCase("")    = ""
    251.      * UnCommonStringUtils.lowerCase("aBc") = "abc"
    252.      * </pre>
    253.      *
    254.      * @param str 需要转化的字符串
    255.      * @return String 转化后的字符串,若输入null则返回null
    256.      * @since 1.0
    257.      */
    258.     public static String lowerCase(String str) {
    259.         return org.apache.commons.lang3.StringUtils.lowerCase(str);
    260.     }
    261.     /**
    262.      * TODO  htmlEscape(html转义)
    263.      *
    264.      * @param content 待转义字符串
    265.      * @return String 转义后字符串
    266.      * @since 1.0
    267.      */
    268.     public static String htmlEscape(String content) {
    269.         if (isNullOrEmpty(content)) {
    270.             return EMPTY_STRING;
    271.         }
    272.         String html = content;
    273.         html = html.replaceAll("&", "&");
    274.         // "
    275.         html = html.replace(""", """);
    276.         // 替换跳格
    277.         html = html.replace("  ", "\t");
    278.         // 替换空格
    279.         html = html.replace(" ", " ");
    280.         html = html.replace("<", "<");
    281.         html = html.replaceAll(">", ">");
    282.         return html;
    283.     }
    284. }
    复制代码


    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    55

    帖子

    114

    积分

    注册会员

    Rank: 2

    积分
    114
    发表于 2020-3-14 04:27:25 | 显示全部楼层
    VERY GOOOOOOD
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    50

    帖子

    105

    积分

    注册会员

    Rank: 2

    积分
    105
    发表于 2020-5-14 02:47:29 | 显示全部楼层
    java8 stream
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表