Java字符串工具类

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

    /** 
     * Copyright &copy; 2012-2013 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved. 
     * 
     * Licensed under the Apache License, Version 2.0 (the "License"); 
     */  
    package com.midai.util;  
      
    import java.io.UnsupportedEncodingException;  
    import java.util.Locale;  
    import java.util.regex.Matcher;  
    import java.util.regex.Pattern;  
      
    import javax.servlet.http.HttpServletRequest;  
      
    import org.apache.commons.lang3.StringEscapeUtils;  
    import org.springframework.web.context.request.RequestContextHolder;  
    import org.springframework.web.context.request.ServletRequestAttributes;  
      
    /** 
     * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类 
     * @author ThinkGem 
     * @version 2013-05-22 
     */  
    public class StringUtils extends org.apache.commons.lang3.StringUtils {  
          
        public static String lowerFirst(String str){  
            if(StringUtils.isBlank(str)) {  
                return "";  
            } else {  
                return str.substring(0,1).toLowerCase() + str.substring(1);  
            }  
        }  
          
        public static String upperFirst(String str){  
            if(StringUtils.isBlank(str)) {  
                return "";  
            } else {  
                return str.substring(0,1).toUpperCase() + str.substring(1);  
            }  
        }  
      
        /** 
         * 替换掉HTML标签方法 
         */  
        public static String replaceHtml(String html) {  
            if (isBlank(html)){  
                return "";  
            }  
            String regEx = "<.+?>";  
            Pattern p = Pattern.compile(regEx);  
            Matcher m = p.matcher(html);  
            String s = m.replaceAll("");  
            return s;  
        }  
      
        /** 
         * 缩略字符串(不区分中英文字符) 
         * @param str 目标字符串 
         * @param length 截取长度 
         * @return 
         */  
        public static String abbr(String str, int length) {  
            if (str == null) {  
                return "";  
            }  
            try {  
                StringBuilder sb = new StringBuilder();  
                int currentLength = 0;  
                for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) {  
                    currentLength += String.valueOf(c).getBytes("GBK").length;  
                    if (currentLength <= length - 3) {  
                        sb.append(c);  
                    } else {  
                        sb.append("...");  
                        break;  
                    }  
                }  
                return sb.toString();  
            } catch (UnsupportedEncodingException e) {  
                e.printStackTrace();  
            }  
            return "";  
        }  
      
        /** 
         * 缩略字符串(替换html) 
         * @param str 目标字符串 
         * @param length 截取长度 
         * @return 
         */  
        public static String rabbr(String str, int length) {  
            return abbr(replaceHtml(str), length);  
        }  
              
          
        /** 
         * 转换为Double类型 
         */  
        public static Double toDouble(Object val){  
            if (val == null){  
                return 0D;  
            }  
            try {  
                return Double.valueOf(trim(val.toString()));  
            } catch (Exception e) {  
                return 0D;  
            }  
        }  
      
        /** 
         * 转换为Float类型 
         */  
        public static Float toFloat(Object val){  
            return toDouble(val).floatValue();  
        }  
      
        /** 
         * 转换为Long类型 
         */  
        public static Long toLong(Object val){  
            return toDouble(val).longValue();  
        }  
      
        /** 
         * 转换为Integer类型 
         */  
        public static Integer toInteger(Object val){  
            return toLong(val).intValue();  
        }  
          
          
        /** 
         * 获得用户远程地址 
         */  
        public static String getRemoteAddr(HttpServletRequest request){  
            String remoteAddr = request.getHeader("X-Real-IP");  
            if (isNotBlank(remoteAddr)) {  
                remoteAddr = request.getHeader("X-Forwarded-For");  
            }else if (isNotBlank(remoteAddr)) {  
                remoteAddr = request.getHeader("Proxy-Client-IP");  
            }else if (isNotBlank(remoteAddr)) {  
                remoteAddr = request.getHeader("WL-Proxy-Client-IP");  
            }  
            return remoteAddr != null ? remoteAddr : request.getRemoteAddr();  
        }  
          
    }