Java字符串工具類

jopen 9年前發布 | 7K 次閱讀 Java

    /**

 * 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();  
    }  

}  </pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!