stringutil

private static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    private static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    private static final String digitChar = "0123456789";

    /**
     * 判别字符串是否为null或者没有内容
     *
     * @param inStr 被判断的输入参数
     * @return 布尔值:true=表示输入字符串为null或者没有内容 false=表示输入字符串不为null或者有内容
     */
    public static boolean zero(String inStr) {
        return ((null == inStr) || (inStr.length() <= 0));
    }

    /**
     * 判断字符串是否为null或没有内容或全部为空格。
     *
     * @param inStr 被判断的输入参数
     * @return 布尔值:true=表示输入字符串为null或没有内容或全部为空格 false=表示输入字符串不为null或有内容或全部不为空格
     */
    public static boolean empty(String inStr) {
        return (zero(inStr) || (inStr.trim().equals("")));
    }

    /**
     * 判断字符串是否为null或没有内容或全部为空格或为null字符串。
     *
     * @param inStr 被判断的输入参数
     * @return 布尔值:true=表示输入字符串为null或没有内容或全部为空格 false=表示输入字符串不为null或有内容或全部不为空格
     */
    public static boolean emptyornull(String inStr) {
        return empty(inStr) || equalsIgnoreCase(inStr, "null");
    }

    /**
     * 在str为null或者没有内容的情况下,返回空串;否则返回输入参数。
     *
     * @param inStr 被判断的输入参数
     * @return 字符串="" 表示输入字符串为null或者没有内容 字符串!="" 表示输入字符串有内容
     */
    public static String toZeroSafe(String inStr) {
        if(zero(inStr)) {
            return "";
        }
        return inStr;
    }

    /**
     * 在inStr为null或者没有内容的情况下,返回def;否则返回str
     *
     * @param inStr 被判断的输入参数
     * @param def inStr为null或者没有内容的情况下,需要返回的字符串
     * @return 字符串=def 表示输入字符串为null或者没有内容 字符串=inStr 表示输入字符串有内容
     */
    public static String toZeroSafe(String inStr, String def) {
        if(zero(inStr)) {
            return def;
        }
        return inStr;
    }

    /**
     * 在str为null或者没有内容,或者全部为空格的情况下,返回空串;否则返回str
     *
     * @param inStr 被判断的输入参数
     * @return 字符串="" 表示输入字符串为null或者没有内容或者全部为空格 字符串!="" 表示输入字符串有内容
     */
    public static String toEmptySafe(String inStr) {
        if(empty(inStr)) {
            return "";
        }
        return inStr;
    }

    /**
     * 在str为null或者没有内容,或者全部为空格的情况下,返回def;否则返回str
     *
     * @param inStr 被判断的输入参数
     * @param def inStr为null或者没有内容或者全部为空格的情况下,需要返回的字符串
     * @return 字符串=def 表示输入字符串为null或者没有内容或者全部为空格 字符串=inStr 表示输入字符串有内容
     */
    public static String toEmptySafe(String inStr, String def) {
        if(empty(inStr)) {
            return def;
        }
        return inStr;
    }

    /**
     * 去掉输入字符串首尾空格
     *
     * @param inStr 输入字符串
     * @return 首尾无空格的字符串
     */
    public static String trim(String inStr) {
        if(empty(inStr)) {
            return inStr;
        }
        return inStr.trim();
    }

    /**
     * 判断字符串是否内容相同
     *
     * @param s1 第1个输入字符串
     * @param s2 第2个输入字符串
     * @return 布尔值=true:两个字符串相等 =false:两个字符串不相等
     */
    public static boolean equals(String s1, String s2) {
        if(s1 == s2)
            return true;
        if(null == s1)
            return false;
        return s1.equals(s2);
    }

    /**
     * 判断字符串是否内容相同,不区分大小写
     *
     * @param s1 第1个输入字符串
     * @param s2 第2个输入字符串
     * @return 布尔值=true:两个字符串相等 =false:两个字符串不相等
     */
    public static boolean equalsIgnoreCase(String s1, String s2) {
        if(null == s1) {
            return false;
        }
        return s1.equalsIgnoreCase(s2);
    }

    /**
     * 把字符数组转换成字符串
     *
     * @param array 字符数组
     * @return 转换后的字符串
     */
    public static String toString(char[] array) {
        return String.valueOf(array);
    }

    /**
     * 在字符串中,用新的字符串替换指定的字符
     *
     * @param src 需要替换的字符串
     * @param charOld 被替换的字符
     * @param strNew 用于替换的字符串
     * @return 已经替换好的字符串
     */
    public static String replace(String src, char charOld, String strNew) {
        if(null == src) {
            return src;
        }
        if(null == strNew) {
            return src;
        }

        StringBuilder buf = new StringBuilder();
        for(int i = 0, n = src.length(); i < n; i++) {
            char c = src.charAt(i);
            if(c == charOld) {
                buf.append(strNew);
            }else {
                buf.append(c);
            }
        }
        return buf.toString();
    }

    /**
     * 把字符串的第一个字符变为大写
     *
     * @param s 输入字符串
     * @return 返回第一个字符是大写的字符串
     */
    public static String upperFirst(String s) {
        String str = null;
        if(null != s) {
            if(s.length() == 1) {
                str = s.toUpperCase();
            }else {
                str = s.substring(0, 1).toUpperCase() + s.substring(1);
            }
        }
        return str;
    }

    /**
     * 把字符对象第一个字符变为大写
     *
     * @param sb 字符对象
     */
    public static void upperFirst(StringBuilder sb) {
        if((null != sb) && (sb.length() > 0)) {
            sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
        }
    }

    /**
     * 把字符串的第一个字符变为小写
     *
     * @param s 输入的字符串
     * @return 返回的第一个字符是小写的字符串
     */
    public static String lowerFirst(String s) {
        String str = null;
        if(null != s) {
            if(s.length() == 1) {
                str = s.toLowerCase();
            }else {
                str = s.substring(0, 1).toLowerCase() + s.substring(1);
            }
        }
        return str;
    }

    /**
     * 把字符对象的第一个字符变为小写
     *
     * @param sb 输入的字符对象
     */
    public static void lowerFirst(StringBuilder sb) {
        if((null != sb) && (sb.length() > 0)) {
            sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
        }
    }

    /**
     * 根据指定的delima标志获取输入字符串的后缀
     *
     * @param str 输入字符串
     * @param delima 指定的标志,一般是一个字符,如“.”
     * @return 输入字符串子的后缀
     */
    public static String getLastSuffix(String str, String delima) {
        if(zero(delima)) {
            return str;
        }

        String suffix = "";
        if(!zero(str)) {
            int index = str.lastIndexOf(delima);
            if(index >= 0) {
                suffix = str.substring(index + delima.length());
            }else {
                suffix = str;
            }
        }
        return suffix;
    }

    /**
     * 根据指定的delima标志获取输入字符串的前缀
     *
     * @param src 输入字符串
     * @param delima 指定的标志,一般是一个字符,如“.”
     * @return 输入字符串的前缀
     */
    public static String getLastPrefix(String src, String delima) {
        if(zero(delima)) {
            return src;
        }

        String prefix = "";
        if(!zero(src)) {
            int index = src.lastIndexOf(delima);
            if(index >= 0) {
                prefix = src.substring(0, index);
            }
        }
        return prefix;
    }

    /**
     * 判断输入字符串是否包含指定的字符串
     *
     * @param str 输入字符串
     * @param searchStr 指定是否包含的字符串
     * @return =true:包含指定的字符串 =false:不包含指定的字符串
     */
    public static boolean contains(String str, String searchStr) {
        if(str == null || searchStr == null) {
            return false;
        }
        if(searchStr.length() == 0) // ""空串不认为被包含。String.indexOf()认为空串被包含
        {
            return false;
        }else {
            return str.indexOf(searchStr) >= 0;
        }
    }

    /**
     * 将指定的字符串按特殊字符分割成集合.<br>
     *
     *@param inStr 分割字符串=
     *@param delim 分割特殊字符 一般为",-:"
     *@return 字符串集合
     */
    public static List<String> getListByStr(String inStr, String delim) {
        List<String> strList = new ArrayList<String>();
        if(empty(inStr) || empty(delim)) {
            return strList;
        }
        String[] arrStr = inStr.split(delim);
        for(String temp: arrStr) {
            strList.add(temp);
        }
        return strList;
    }

    /**
     * 将指定的字符串按特殊字符分割成数组.<br>
     *
     *@param inStr 分割字符串
     *@param delim 分割特殊字符 一般为",-:"
     *@return 字符串数组
     */
    public static String[] split(String inStr, String delim) {
        if(empty(inStr) || empty(delim)) {
            return new String[0];
        }
        return inStr.split(delim);
    }

    /**
     * 将集合转换为字符串,以特殊符号分割.<br>
     *
     *@param inList 集合
     *@param delim 分割特殊字符 一般为",-:"
     *@return 转换后的字符串
     */
    public static String toStringByList(List<String> inList, String delim) {
        String returnStr = "";
        if(null == inList || inList.size() == 0 || empty(delim)) {
            return returnStr;
        }
        for(int i = 0; i < inList.size(); i++) {
            if(i != 0) {
                returnStr += delim;
            }
            returnStr += inList.get(i);
        }
        return returnStr;
    }

    /**
     * 将集合转换为字符串,以","符号分割.<br>
     *
     *@param inList 集合
     *@return 转换后的字符串
     */
    public static String toStringByList(List<String> inList) {
        return toStringByList(inList, ",");
    }

    /**
     * 将数组转换为字符串,以特殊符号分割.<br>
     *
     *@param inArray 数组
     *@param delim 分割特殊字符 一般为",-:"
     *@return 转换后的字符串
     */
    public static String toStringByArray(String[] inArray, String delim) {
        String returnStr = "";
        if(null == inArray || inArray.length == 0 || empty(delim)) {
            return returnStr;
        }
        for(int i = 0; i < inArray.length; i++) {
            if(i != 0) {
                returnStr += delim;
            }
            returnStr += inArray[i];
        }
        return returnStr;
    }

    /**
     * 将数组转换为字符串,以","符号分割.<br>
     *
     *@param inArray 数组
     *@return 转换后的字符串
     */
    public static String toStringByArray(String[] inArray) {
        return toStringByArray(inArray, ",");
    }

    /**
     * 统计字符串的特殊字符串出现的次数.<br>
     *
     *@param inStr 字符串
     *@param countStr 特殊字符串
     *@return 总次数
     */
    public static int countStrNumber(String inStr, String countStr) {
        int count = 0;
        int startIndex = 0;
        while (true) {
            int index = inStr.indexOf(countStr, startIndex);
            if(index == -1) {
                break;
            }
            count++;
            startIndex = index + countStr.length();
        }
        return count;
    }

    /**
     * 返回一个定长的随机字符串 (只包含数字)
     *
     * @param length 随机字符串长度
     * @return 随机字符串
     */
    public static String generateDigitString(int length) {
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < length; i++) {
            sb.append(digitChar.charAt(random.nextInt(digitChar.length())));
        }
        return sb.toString();
    }

    /**
     * 返回一个定长的随机字符串(只包含大小写字母、数字)
     *
     * @param length 随机字符串长度
     * @return 随机字符串
     */
    public static String generateString(int length) {
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < length; i++) {
            sb.append(allChar.charAt(random.nextInt(allChar.length())));
        }
        return sb.toString();
    }

    /**
     * 返回一个定长的随机纯字母字符串(只包含大小写字母)
     *
     * @param length 随机字符串长度
     * @return 随机字符串
     */
    public static String generateMixString(int length) {
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < length; i++) {
            sb.append(allChar.charAt(random.nextInt(letterChar.length())));
        }
        return sb.toString();
    }

    /**
     * 返回一个定长的随机纯小写字母字符串(只包含小写字母)
     *
     * @param length 随机字符串长度
     * @return 随机字符串
     */
    public static String generateLowerString(int length) {
        return generateMixString(length).toLowerCase();
    }

    /**
     * 返回一个定长的随机纯大写字母字符串(只包含大写字母)
     *
     * @param length 随机字符串长度
     * @return 随机字符串
     */
    public static String generateUpperString(int length) {
        return generateMixString(length).toUpperCase();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值