字符串工具类

字符串工具类StringUtils

字符串处理常用方法,继承org.apache.commons.lang3.StringUtils

  • 对象判空
  • 去除字符串中的html标签
  • 字符串转换为Integer数组
  • 字符串拼接
  • 数组转成字符串
  • 格式化文本
  • 获取字符串中的第i个以s分割的字符串
  • 如果一个字符串数字中小数点后全为零,则去掉小数点及零
  • 转换JavaScript解析不了的特殊字符
public class StringUtils extends org.apache.commons.lang3.StringUtils {


    /**
     * * 判断一个对象是否为空
     *
     * @param object Object
     * @return true:为空 false:非空
     */
    public static boolean isNull(Object object) {
        return object == null;
    }

    /**
     * * 判断一个对象数组是否为空
     *
     * @param objects 要判断的对象数组
     * @return true:为空 false:非空
     */
    public static boolean isEmpty(Object[] objects) {
        return isNull(objects) || (objects.length == 0);
    }

    /**
     * 去除字符串中的html标签.
     *
     * <pre>
     *     StringUtils.replaceHtml("<td>content</td>") -> "content"
     * </pre>
     *
     * @param html 待处理的字符串,可以为 null
     * @return String 处理过的字符串,若输入为null则返回 ""
     */
    public static String replaceHtml(String html) {
        if (isBlank(html)) {
            return EMPTY;
        }
        String regEx = "<.+?>";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(html);
        String s = m.replaceAll(EMPTY);
        return s;
    }

    /**
     * 字符串转换为 Integer 数组.
     *
     * <pre>
     *     StringUtils.toIntegerArray("2,3,4", ",")  -> [2,3,4]
     * </pre>
     *
     * @param val   字符串
     * @param regex 分隔符
     * @return Integer[] Integer数组
     * @throws NumberFormatException
     */
    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;
        }
    }

    /**
     * 字符串拼接.
     *
     * <pre>
     *     StringUtils.appendInfo(" ", "I", "love", "you") -> I love you
     * </pre>
     *
     * @param separator 分隔符
     * @param args      待拼接字符串 s1 s2 ...
     * @return String 拼接后的字符串
     */
    public static String appendInfo(String separator, String... args) {
        if (args == null || args.length < 1) {
            return null;
        }
        StringBuilder result = new StringBuilder();
        result.append(args[0]);
        for (int i = 1; i < args.length; i++) {
            result.append(separator);
            result.append(args[i]);
        }
        return result.toString();
    }

    /**
     * 数组转成字符串.
     *
     * <pre>
     *     StringUtils.arrayToString( new String[] {"s1", "s2", "s3"}, ",") -> s1,s2,s3
     * </pre>
     *
     * @param args      内容数组
     * @param separator 分隔符
     * @return String 转换结果
     */
    public static String arrayToString(Object[] args, String separator) {
        StringBuilder s = new StringBuilder();
        for (Object o : args) {
            s.append(o).append(separator);
        }
        String res = s.toString();
        return res.substring(0, res.length() - 1);
    }

    /**
     * 格式化文本
     *
     * <pre>
     *     {} 表示占位符,此方法只是简单将占位符 {} 按照顺序替换为参数
     *     如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
     *     通常使用:format("this is {} for {}", "a", "b") -> this is a for b
     *     转义{}: format("this is \\{} for {}", "a", "b") -> this is {} for a
     *     转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
     * </pre>
     *
     * @param template 文本模板,被替换的部分用 {} 表示
     * @param params   参数值
     * @return String 格式化后的文本
     */
    public static String format(String template, Object... params) {
        if (isEmpty(params) || isEmpty(template)) {
            return template;
        }
        return StrFormatter.format(template, params);
    }

    /**
     * 获取字符串中的第i个以s分割的字符串
     *
     * <pre>
     *     getStr("日/凌波/吹雪", 1, "/") -> 日
     *     getStr("日/凌波/吹雪", 2, "/") -> 凌波
     *     getStr("日/凌波/吹雪", 3, "/") -> 吹雪
     * </pre>
     *
     * @param c_Str   目标字符串
     * @param c_i     位置
     * @param c_Split 分割符
     * @return 如果发生异常,则返回空
     */
    public static String getStr(String c_Str, int c_i, String c_Split) {
        String t_Str1 = "", t_Str2 = "", t_strOld = "";
        int i = 0, i_Start = 0;
        t_Str1 = c_Str;
        t_Str2 = c_Split;
        i = 0;
        try {
            while (i < c_i) {
                i_Start = t_Str1.indexOf(t_Str2, 0);
                if (i_Start >= 0) {
                    i += 1;
                    t_strOld = t_Str1;
                    t_Str1 = t_Str1.substring(i_Start + t_Str2.length(),
                            t_Str1.length());
                } else {
                    if (i != c_i - 1) {
                        t_Str1 = "";
                    }
                    break;
                }
            }

            if (i_Start >= 0) {
                t_Str1 = t_strOld.substring(0, i_Start);
            }
        } catch (Exception ex) {
            t_Str1 = "";
        }
        return t_Str1;
    }

    /**
     * 如果一个字符串数字中小数点后全为零,则去掉小数点及零
     *
     * @param Value String
     * @return String
     */
    public static String removePoint(String Value) {
        if (Value == null) {
            return null;
        }
        String result = "";
        boolean mflag = true;
        int m = 0;
        m = Value.lastIndexOf(".");
        if (m == -1) {
            result = Value;
        } else {
            for (int i = m + 1; i <= Value.length() - 1; i++) {
                if (Value.charAt(i) != '0') {
                    result = Value;
                    mflag = false;
                    break;
                }
            }
            if (mflag) {
                result = Value.substring(0, m);
            }
        }
        return result;
    }

    /**
     * 转换JavaScript解析不了的特殊字符
     *
     * @param s String
     * @return String
     */
    public static String changForJavaScript(String s) {
        char[] arr = s.toCharArray();
        s = "";
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == '"' || arr[i] == '\'' || arr[i] == '\n') {
                s += "\\";
            }
            s += arr[i];
        }
        return s;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值