Package com.thinkgem.jeesite.common.utils

Source Code of com.thinkgem.jeesite.common.utils.StringUtils

/**
* 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.thinkgem.jeesite.common.utils;

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;
import org.springframework.web.servlet.LocaleResolver;

/**
* 字符串工具类, 继承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();
  }
 
  /**
   * 获得i18n字符串
   */
  public static String getMessage(String code, Object[] args) {
    LocaleResolver localLocaleResolver = SpringContextHolder.getBean(LocaleResolver.class);
    HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest()
    Locale localLocale = localLocaleResolver.resolveLocale(request);
    return SpringContextHolder.getApplicationContext().getMessage(code, args, localLocale);
  }
 
  /**
   * 获得用户远程地址
   */
  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();
  }
 
}
TOP

Related Classes of com.thinkgem.jeesite.common.utils.StringUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.