StringUtils


import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public final class StringUtils {

    /**
     * 判断对象是否为空
     **/
    public static boolean isEmpty(Object... objs) {
        if (objs == null || objs.length == 0) {
            return true;
        }
        for (Object obj : objs) {
            if (obj == null) {
                return true;
            } else if ("".equals(obj.toString().trim())) {
                return true;
            } else if (obj instanceof Collection) {
                Collection collection = (Collection) obj;
                if (collection.isEmpty()) {
                    return true;
                }
            } else if (obj instanceof Map) {
                Map map = (Map) obj;
                if (map.isEmpty()) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 判断字符串是否存在不为空
     **/
    public static boolean hasNotEmpty(String... objs) {
        if (objs == null || objs.length == 0) {
            return false;
        }
        for (Object obj : objs) {
            if (obj != null && obj != "") {
                return true;
            }
        }
        return false;
    }

    /**
     * 判断对象是否为空
     **/
    public static boolean isNotEmpty(Object... objs) {
        return !isEmpty(objs);
    }

    /**
     * 对象为空 则替换另外一个对象
     */
    public static <T> T isEmptyReplace(T checkStr, T replace) {
        return isEmpty(checkStr) ? replace : checkStr;
    }

    /**
     * 判断字符串是否超过len个长度 不超过直接返回 超过则截取前len个长度返回
     *
     * @param src 原字符串
     * @param len 需要判断的航都
     * @return 返回结果字符串
     */
    public static String isEnoughSubstr(String src, int len) {
        return null == src ? null : src.length() <= len ? src : src.substring(0, len);
    }

    /**
     * 判断字符串中是否包含中文
     *
     * @param str 待校验字符串
     * @return 是否为中文
     * @warn 不能校验是否为中文标点符号
     */
    public static boolean isContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

    /**
     * 字符串补全
     *
     * @param src  原字符串
     * @param len  长度
     * @param flag 0 左边 否则 右边
     * @param c    填补字符
     * @return 补全后字符串
     */
    public static String stringPadding(String src, int len, int flag, String c) {
        StringBuffer result = new StringBuffer();
        if (c.length() != 1) {
            return src;
        }
        int num = 0;
        try {
            num = src.getBytes("gbk").length;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        if (result.length() < len) {
            if (0 == flag) {
                for (int i = 0; i < len - num; i++) {
                    result.append(c);
                }
                result.append(src);
            } else {
                result.append(src);
                for (int i = 0; i < len - num; i++) {
                    result.append(c);
                }
            }
            return result.toString();
        } else {
            return result.toString();
        }
    }

    /**
     * 是否有一个不为空
     */
    public static boolean isAnyNotEmpty(Object... objs) {
        if (objs == null || objs.length == 0) {
            return false;
        }
        for (Object obj : objs) {
            if (!isEmpty(obj)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 获取文件名尾缀  例如  demo.txt
     * return  txt
     */
    public static String getFileSuffix(String fileName) {
        if (StringUtils.isEmpty(fileName) || !fileName.contains(".")) {
            throw new BizException("当前文件格式不支持");
        }
        return fileName.substring(fileName.lastIndexOf(".") + 1);
    }
}

上一篇:StringUtil中常用的方法


下一篇:isEmpty 和 isBlank 的区别