zoukankan      html  css  js  c++  java
  • String工具类

    package com.huawei.bfm.common.util;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    
    import org.apache.commons.lang.StringEscapeUtils;
    import org.apache.commons.lang.builder.ToStringBuilder;
    
    /**
     *  字符串处理通用工具类
     * 
     * @author tjw
     * @date [Nov 29, 2012]
     * @version [NGSDP LB5213]
     */
    public final class StringUtils
    {
        /** 空字符串 */
        public static final String EMPTY = "";
        
        // SQL关键字,匹配所有字符
        private static final String SQL_KEYWORD_STRING = "%";
        
        // SQL关键字,匹配单个字符
        private static final String SQL_KEYWORD_CHAR = "_";
        
        // SQL关键字,转义符
        private static final String SQL_KEYWORD_ESCAPE = "\";
        
        // 默认join 分割符
        private static final String DEFULT_JOIN_SEPARATOR = ",";
        
        // 默认封装 标示符
        private static final String DEFULT_WRAP_FLAG = "'";
        
        private StringUtils()
        {
        }
        
        /**
         * 截取目标字符串后面的字符串,以第一个开始截取
         * 
         * @param str
         *            待处理字符串
         * @param separator
         *            分隔符号
         * @return 处理后的字符串
         */
        public static String substringAfter(String str, String separator)
        {
            if (contains(str, separator))
            {
                return org.apache.commons.lang.StringUtils.substringAfter(str, separator);
            }
            return str;
        }
        
        /**
         * 截取目标字符串后面的字符串,以最后一个开始截取
         * 
         * @param str
         *            待处理字符串
         * @param separator
         *            分隔符号
         * @return 处理后的字符串
         */
        public static String substringAfterLast(String str, String separator)
        {
            if (contains(str, separator))
            {
                return org.apache.commons.lang.StringUtils.substringAfterLast(str, separator);
            }
            return str;
        }
        
        /**
         * 去除字符串前缀
         * 
         * @param str
         *            待处理字符串
         * @param prefix
         *            前缀
         * @return 处理完的字符串
         */
        public static String removePrefix(String str, String prefix)
        {
            if (isNotBlank(str, prefix))
            {
                if (str.startsWith(prefix))
                {
                    return str.substring(prefix.length());
                }
            }
            return str;
        }
        
        /**
         * 添加字符串前缀
         * 
         * @param str
         *            待处理字符串
         * @param prefix
         *            前缀
         * @return 处理完的字符串
         */
        public static String appendPrefix(String str, String prefix)
        {
            if (isNotBlank(str, prefix))
            {
                if (!str.startsWith(prefix))
                {
                    return prefix + str;
                }
            }
            return str;
        }
        
        /**
         * 去除字符串后缀
         * 
         * @param str
         *            待处理字符串
         * @param subfix
         *            后缀
         * @return 处理完的字符串
         */
        public static String removeSubfix(String str, String subfix)
        {
            if (isNotBlank(str, subfix))
            {
                if (str.endsWith(subfix))
                {
                    return str.substring(0, str.length() - subfix.length());
                }
            }
            return str;
        }
        
        /**
         * 添加字符串后缀
         * 
         * @param str
         *            待处理字符串
         * @param subfix
         *            后缀
         * @return 处理完的字符串
         */
        public static String appendSubfix(String str, String subfix)
        {
            if (isNotBlank(str, subfix))
            {
                if (!str.endsWith(subfix))
                {
                    return str + subfix;
                }
            }
            return str;
        }
        
        /**
         * 首字母转换成大写
         * 
         * @param str
         *            待转换字符串
         * @return 转换后字符串
         */
        public static String capitalize(String str)
        {
            return org.apache.commons.lang.StringUtils.capitalize(str);
        }
        
        /**
         * 目标字符串是否包含字串
         * 
         * @param str
         *            目标字符串
         * @param searchStr
         *            子字符串
         * @return 目标字符串是否包含字串
         */
        public static boolean contains(String str, String searchStr)
        {
            return org.apache.commons.lang.StringUtils.contains(str, searchStr);
        }
        
        /**
         * 默认字符串
         * 
         * 如果目标字符串为 null 返回 空串,否则返回原始字符串
         * 
         * @param str
         *            目标字符串
         * @return 默认字符串
         */
        public static String defaultString(String str)
        {
            return org.apache.commons.lang.StringUtils.defaultString(str);
        }
        
        /**
         * 默认字符串
         * 
         * 如果目标字符串为 null 返回 空串,否则返回原始字符串
         * 
         * @param str
         *            目标字符串
         * @param defaultStr
         *            默认字符串
         * @return 默认字符串
         */
        public static String defaultString(String str, String defaultStr)
        {
            return org.apache.commons.lang.StringUtils.defaultString(str, defaultStr);
        }
        
        /**
         * 字符串比对是否相同,
         * 
         * @param str
         *            待比较字符串
         * @param strs
         *            待比较字符串数组 ,任何一个字符串与目标字符串匹配成功则匹配成功
         * @return 比较结果
         */
        public static boolean equals(String str, String... strs)
        {
            
            if (ArrayUtils.isNotEmpty(strs))
            {
                for (String s : strs)
                {
                    if (org.apache.commons.lang.StringUtils.equals(s, str))
                    {
                        return true;
                    }
                }
                return false;
            }
            else
            {
                return null == str;
            }
            
        }
        
        /**
         * SQL编码
         * 
         * <pre>
         * 将  _ % 等特殊字符前补加转意符,
         * </pre>
         * 
         * @param str
         *            未编码字符串
         * @return 编码后字符串
         */
        public static String escapeSql(String str)
        {
            if (isNotBlank(str))
            {
                str = str.replace(SQL_KEYWORD_ESCAPE, SQL_KEYWORD_ESCAPE + SQL_KEYWORD_ESCAPE);
                str = str.replace(SQL_KEYWORD_CHAR, SQL_KEYWORD_ESCAPE + SQL_KEYWORD_CHAR);
                str = str.replace(SQL_KEYWORD_STRING, SQL_KEYWORD_ESCAPE + SQL_KEYWORD_STRING);
                
            }
            return str;
        }
        
        /**
         * 获取模糊查询字符串
         * 
         * <pre>
         * 字符串前后添加 % 符号
         * </pre>
         * 
         * @param str
         *            待模糊查询字符串
         * @return 拼接相关模糊查询标识的字符串
         */
        public static String getFuzzyString(String str)
        {
            if (isNotBlank(str))
            {
                str = SQL_KEYWORD_STRING + str + SQL_KEYWORD_STRING;
            }
            return str;
        }
        
        /**
         * 获取模糊查询字符串,特殊字符进行转义
         * 
         * 
         * <pre>
         * 1、将  _ % 等特殊字符前补加转意符,
         * 2、字符串前后添加 % 符号
         * </pre>
         * 
         * @param str
         *            待模糊查询字符串
         * @return 拼接相关模糊查询标识的字符串
         */
        public static String getFuzzyStringWithEscape(String str)
        {
            if (isNotBlank(str))
            {
                return getFuzzyString(escapeSql(str));
            }
            return null;
        }
        
        /**
         * 获取被检索字符串在目标字符串中的索引的位置
         * 
         * @param str
         *            目标字符串
         * @param searchChars
         *            被检索字符串
         * @return 索引的位置
         */
        public static int indexOfAny(String str, String searchChars)
        {
            return org.apache.commons.lang.StringUtils.indexOfAny(str, searchChars);
        }
        
        /**
         * 获取被检索字符串在目标字符串中的索引的位置
         * 
         * @param str
         *            目标字符串
         * @param searchChars
         *            被检索字符串
         * @return 索引的位置
         */
        public static int indexOfAny(String str, String[] searchChars)
        {
            return org.apache.commons.lang.StringUtils.indexOfAny(str, searchChars);
        }
        
        /**
         * 是否为空
         * 
         * @param str
         *            待校验字符串
         * @return 是否为空
         */
        public static boolean isBlank(String str)
        {
            return org.apache.commons.lang.StringUtils.isBlank(str);
        }
        
        /**
         * 判断字符串指定范围的字符是否全部是数字。
         * 
         * @param str
         *            输入的字符串
         * @param begin
         *            起始下标,包括这个字符
         * @param end
         *            结束下标,不包括这个字符
         * @return 如果范围内的字符都是数字返回true,否则返回false
         */
        public static boolean isDigitInRange(String str, int begin, int end)
        {
            if (isBlank(str))
            {
                return false;
            }
            if (begin < 0 || end < 0 || begin >= end)
            {
                return false;
            }
            if (str.length() <= end)
            {
                return false;
            }
            for (int i = begin; i < end; i++)
            {
                if (!Character.isDigit(str.charAt(i)))
                {
                    return false;
                }
            }
            return true;
        }
        
        /**
         * 是否为空
         * 
         * @param str
         *            待校验字符串
         * @return 是否为空
         */
        public static boolean isEmpty(String str)
        {
            return org.apache.commons.lang.StringUtils.isEmpty(str);
        }
        
        /**
         * 是否非空
         * 
         * 任何一个字符串为空,将范围false
         * 
         * @param strs
         *            待校验字符串
         * @return 是否非空
         */
        public static boolean isNotBlank(String... strs)
        {
            if (null == strs)
            {
                return false;
            }
            
            for (String str : strs)
            {
                if (!org.apache.commons.lang.StringUtils.isNotBlank(str))
                {
                    return false;
                }
            }
            return true;
        }
        
        /**
         * 是否非空
         * 
         * 任何一个字符串为空,将范围false
         * 
         * @param strs
         *            待校验字符串
         * @return 是否非空
         */
        public static boolean isNotEmpty(String... strs)
        {
            if (null == strs)
            {
                return false;
            }
            for (String str : strs)
            {
                if (!org.apache.commons.lang.StringUtils.isNotEmpty(str))
                {
                    return false;
                }
            }
            return true;
        }
        
        /**
         * 是否是数字
         * 
         * @param str
         *            目标字符串
         * @return 是否是数字
         */
        public static boolean isNumeric(String str)
        {
            return org.apache.commons.lang.StringUtils.isNumeric(str);
        }
        
        /**
         * 使用 , 拼接集合
         * 
         * @param col
         *            待拼接集合对象
         * @return 拼接后的字符串
         */
        public static String join(Collection<?> col)
        {
            return join(col, DEFULT_JOIN_SEPARATOR);
        }
        
        /**
         * 拼接集合数据
         * 
         * @param col
         *            待拼接集合
         * @param separator
         *            分隔符
         * @return 拼接后的集合数据
         */
        public static String join(Collection<?> col, String separator)
        {
            return org.apache.commons.lang.StringUtils.join(col, separator);
        }
        
        /**
         * 拼接集合数据
         * 
         * @param strs
         *            待拼接集合
         * @param separator
         *            分隔符
         * @return 拼接后的集合数据
         */
        public static String join(Object[] strs, String separator)
        {
            return org.apache.commons.lang.StringUtils.join(strs, separator);
        }
        
        /**
         * 左补齐字符串
         * 
         * @param str
         *            待补齐字符串
         * @param size
         *            字符串长度
         * @param padChar
         *            补齐字符
         * @return 补齐后字符串
         */
        public static String leftPad(String str, int size, char padChar)
        {
            return org.apache.commons.lang.StringUtils.leftPad(str, size, padChar);
        }
        
        /**
         * 左补齐字符串
         * 
         * @param str
         *            待补齐字符串
         * @param size
         *            字符串长度
         * @param padStr
         *            补齐字符
         * @return 补齐后字符串
         */
        public static String leftPad(String str, int size, String padStr)
        {
            return org.apache.commons.lang.StringUtils.leftPad(str, size, padStr);
        }
        
        /**
         * 转换成小写字母
         * 
         * @param str
         *            目标字符串
         * @return 转换成小写字母
         */
        public static String lowerCase(String str)
        {
            return org.apache.commons.lang.StringUtils.lowerCase(str);
        }
        
        /**
         * 分割字符串
         * 
         * @param str
         *            目标字符串
         * @param separator
         *            分隔符
         * @return 分割后的集合数据
         */
        public static String[] split(String str, char separator)
        {
            return org.apache.commons.lang.StringUtils.split(str, separator);
        }
        
        /**
         * 分割字符串
         * 
         * @param str
         *            目标字符串
         * @return 分割后的集合数据
         */
        public static String[] split(String str)
        {
            return org.apache.commons.lang.StringUtils.split(str);
        }
        
        /**
         * 分割字符串
         * 
         * @param str
         *            目标字符串
         * @param separator
         *            分隔符
         * @return 分割后的集合数据
         */
        public static String[] split(String str, String separator)
        {
            return org.apache.commons.lang.StringUtils.split(str, separator);
        }
        
        /**
         * 获取子串
         * 
         * @param str
         *            目标字符串
         * @param start
         *            起始索引
         * 
         * @return 子串
         */
        public static String substring(String str, int start)
        {
            return org.apache.commons.lang.StringUtils.substring(str, start);
        }
        
        /**
         * 获取子串
         * 
         * @param str
         *            目标字符串
         * @param start
         *            起始索引
         * @param end
         *            结束索引
         * 
         * @return 子串
         */
        public static String substring(String str, int start, int end)
        {
            return org.apache.commons.lang.StringUtils.substring(str, start, end);
        }
        
        /**
         * 转换成字符串
         * 
         * @param obj
         *            obj
         * @return String
         */
        public static String toString(Object obj)
        {
            return obj == null ? null : obj.toString();
        }
        
        /**
         * 去空格字符串
         * 
         * @param str
         *            目标字符串
         * @return 去空格后的字符串
         */
        public static String trim(String str)
        {
            return org.apache.commons.lang.StringUtils.trim(str);
        }
        
        /**
         * 去空格字符串,如果字符串为empty则返回null
         * 
         * @param str
         *            目标字符串
         * @return 去空格后的字符串
         */
        public static String trimToNull(String str)
        {
            return org.apache.commons.lang.StringUtils.trimToNull(str);
        }
        
        /**
         * 去空格字符串,如果字符串为empty则返回""
         * 
         * @param str
         *            目标字符串
         * @return 去空格后的字符串
         */
        public static String trimToEmpty(String str)
        {
            return org.apache.commons.lang.StringUtils.trimToEmpty(str);
        }
        
        /**
         * 转换成大写字母
         * 
         * @param str
         *            目标字符串
         * @return 转换成大写字母
         */
        public static String upperCase(String str)
        {
            return org.apache.commons.lang.StringUtils.upperCase(str);
        }
        
        /**
         * 使用单引号包装字符串
         * 
         * 
         * @param str
         *            str
         * @param flag
         *            flag
         * @return String
         */
        public static String warp(String str, String flag)
        {
            if (isBlank(flag))
            {
                flag = DEFULT_WRAP_FLAG;
            }
            
            StringBuilder sb = new StringBuilder();
            sb.append(flag).append(str).append(flag);
            return sb.toString();
        }
        
        /**
         * 截取字符串
         * 
         * @param str
         *            待截取字符串
         * @param len
         *            字符长度
         * @return 截取后的字符串
         */
        public static String left(String str, int len)
        {
            return org.apache.commons.lang.StringUtils.left(str, len);
        }
        
        /**
         * 字符串XML解码
         * 
         * @param str
         *            待解码字符串
         * @return 解码后字符串
         */
        public static String unescapeXml(String str)
        {
            return StringEscapeUtils.unescapeXml(str);
        }
        
        /**
         * 反射对象成String类型
         * 
         * @param obj
         *            对象
         * @return 反射后的字符串
         */
        public static String reflectionToString(Object obj)
        {
            return ToStringBuilder.reflectionToString(obj);
        }
        
        
        /**
         * 分割字符串
         * 
         * @param str
         *            目标字符串
         * @param separator
         *            分隔符
         * @return 分割后的集合数据
         */
        public static List<Long> splitToLongList(String str, String separator)
        {
            List<Long> list = new ArrayList<Long>();
            
            if (isNotEmpty(str))
            {
                String[] strs = split(str, separator);
                for (String s : strs)
                {
                    list.add(NumberUtils.toLong(s));
                }
            }
            
            return list;
        }
    }
  • 相关阅读:
    31、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreato机
    30、[源码]-AOP原理-注册AnnotationAwareAspectJAutoProxyCreavi
    29、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi
    magento 常用的函数
    magento性能优化的教程(非常详细)
    magento性能优化
    magento搜索属性值的设置方法
    Magento 的程序架构与流程
    Magento入门开发教程
    高级Magento模型 EAV
  • 原文地址:https://www.cnblogs.com/tjw-nau/p/3457094.html
Copyright © 2011-2022 走看看