字符串转换工具类, 继承org.apache.commons.lang3.StringUtils类

import java.io.UnsupportedEncodingException;
import java.util.List;
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;

import com.google.common.collect.Lists;

/**

  • 字符串工具类, 继承org.apache.commons.lang3.StringUtils类

  • @author

  • @version 2013-05-22
    */
    public class StringUtils extends org.apache.commons.lang3.StringUtils {

    private static final char SEPARATOR = ‘_’;
    private static final String CHARSET_NAME = “UTF-8”;

    /**

    • 转换为字节数组
    • @param str
    • @return
      */
      public static byte[] getBytes(String str){
      if (str != null){
      try {
      return str.getBytes(CHARSET_NAME);
      } catch (UnsupportedEncodingException e) {
      return null;
      }
      }else{
      return null;
      }
      }

    /**

    • 转换为字节数组
    • @param str
    • @return
      */
      public static String toString(byte[] bytes){
      try {
      return new String(bytes, CHARSET_NAME);
      } catch (UnsupportedEncodingException e) {
      return EMPTY;
      }
      }

    /**

    • 是否包含字符串
    • @param str 验证字符串
    • @param strs 字符串组
    • @return 包含返回true
      */
      public static boolean inString(String str, String… strs){
      if (str != null){
      for (String s : strs){
      if (str.equals(trim(s))){
      return true;
      }
      }
      }
      return false;
      }

    /**

    • 替换掉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;
      }

    /**

    • 替换为手机识别的HTML,去掉样式及属性,保留回车。
    • @param html
    • @return
      /
      public static String replaceMobileHtml(String html){
      if (html == null){
      return “”;
      }
      return html.replaceAll("<([a-z]+?)\s+?.
      ?>", “<$1>”);
      }

    /**

    • 替换为手机识别的HTML,去掉样式及属性,保留回车。
    • @param txt
    • @return
      */
      public static String toHtml(String txt){
      if (txt == null){
      return “”;
      }
      return replace(replace(Encodes.escapeHtml(txt), “\n”, “
      ”), “\t”, "    ");
      }

    /**

    • 缩略字符串(不区分中英文字符)
    • @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©.getBytes(“GBK”).length;
      if (currentLength <= length - 3) {
      sb.append©;
      } else {
      sb.append("…");
      break;
      }
      }
      return sb.toString();
      } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
      }
      return “”;
      }

    public static String abbr2(String param, int length) {
    if (param == null) {
    return “”;
    }
    StringBuffer result = new StringBuffer();
    int n = 0;
    char temp;
    boolean isCode = false; // 是不是HTML代码
    boolean isHTML = false; // 是不是HTML特殊字符,如 
    for (int i = 0; i < param.length(); i++) {
    temp = param.charAt(i);
    if (temp == ‘<’) {
    isCode = true;
    } else if (temp == ‘&’) {
    isHTML = true;
    } else if (temp == ‘>’ && isCode) {
    n = n - 1;
    isCode = false;
    } else if (temp == ‘;’ && isHTML) {
    isHTML = false;
    }
    try {
    if (!isCode && !isHTML) {
    n += String.valueOf(temp).getBytes(“GBK”).length;
    }
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }

     	if (n <= length - 3) {
     		result.append(temp);
     	} else {
     		result.append("...");
     		break;
     	}
     }
     // 取出截取字符串中的HTML标记
     String temp_result = result.toString().replaceAll("(>)[^<>]*(<?)",
     		"$1$2");
     // 去掉不需要结素标记的HTML标记
     temp_result = temp_result
     		.replaceAll(
     				"</?(AREA|BASE|BASEFONT|BODY|BR|COL|COLGROUP|DD|DT|FRAME|HEAD|HR|HTML|IMG|INPUT|ISINDEX|LI|LINK|META|OPTION|P|PARAM|TBODY|TD|TFOOT|TH|THEAD|TR|area|base|basefont|body|br|col|colgroup|dd|dt|frame|head|hr|html|img|input|isindex|li|link|meta|option|p|param|tbody|td|tfoot|th|thead|tr)[^<>]*/?>",
     				"");
     // 去掉成对的HTML标记
     temp_result = temp_result.replaceAll("<([a-zA-Z]+)[^<>]*>(.*?)</\\1>",
     		"$2");
     // 用正则表达式取出标记
     Pattern p = Pattern.compile("<([a-zA-Z]+)[^<>]*>");
     Matcher m = p.matcher(temp_result);
     List<String> endHTML = Lists.newArrayList();
     while (m.find()) {
     	endHTML.add(m.group(1));
     }
     // 补全不成对的HTML标记
     for (int i = endHTML.size() - 1; i >= 0; i--) {
     	result.append("</");
     	result.append(endHTML.get(i));
     	result.append(">");
     }
     return result.toString();
    

    }

    /**

    • 转换为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();
      }
      /
      *
    • 根据bean字段属性获得set或者get方法的字符串
    • @param prop
    • @param bl true获得set方法字符串,获得get方法字符串
    • @return
      /
      public static String findSetGetByProp(String prop,boolean bl){
      String rr;
      if(bl){
      rr=“set”+firstToUpper(prop);
      }else{
      rr=“get”+firstToUpper(prop);
      }
      return rr;
      }
      /
      *
    • 首字母小写
    • @param str
    • @return
      /
      public static String firstToLower(String str){
      char[] ch = str.toCharArray();
      if (ch[0]>=‘A’ && ch[0]<=‘Z’) {
      ch[0] = (char) (ch[0] + 32);
      }
      return new String(ch);
      }
      /
      *
    • 首字母大写
    • @param str
    • @return
      /
      public static String firstToUpper(String str){
      char[] ch = str.toCharArray();
      if (ch[0] >= ‘a’ && ch[0] <= ‘z’) {
      ch[0] = (char) (ch[0] - 32);
      }
      return new String(ch);
      }
      /
      *
    • 转换为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 = (LocaleResolver) 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();
      }

    /**

    • 驼峰命名法工具
    • @return
    •  toCamelCase("hello_world") == "helloWorld" 
      
    •  toCapitalizeCamelCase("hello_world") == "HelloWorld"
      
    •  toUnderScoreCase("helloWorld") = "hello_world"
      

    */
    public static String toCamelCase(String s) {
    if (s == null) {
    return null;
    }

     s = s.toLowerCase();
    
     StringBuilder sb = new StringBuilder(s.length());
     boolean upperCase = false;
     for (int i = 0; i < s.length(); i++) {
         char c = s.charAt(i);
    
         if (c == SEPARATOR) {
             upperCase = true;
         } else if (upperCase) {
             sb.append(Character.toUpperCase(c));
             upperCase = false;
         } else {
             sb.append(c);
         }
     }
    
     return sb.toString();
    

    }

    /**

    • 驼峰命名法工具
    • @return
    •  toCamelCase("hello_world") == "helloWorld" 
      
    •  toCapitalizeCamelCase("hello_world") == "HelloWorld"
      
    •  toUnderScoreCase("helloWorld") = "hello_world"
      

    */
    public static String toCapitalizeCamelCase(String s) {
    if (s == null) {
    return null;
    }
    s = toCamelCase(s);
    return s.substring(0, 1).toUpperCase() + s.substring(1);
    }

    /**

    • 驼峰命名法工具
    • @return
    •  toCamelCase("hello_world") == "helloWorld" 
      
    •  toCapitalizeCamelCase("hello_world") == "HelloWorld"
      
    •  toUnderScoreCase("helloWorld") = "hello_world"
      

    */
    public static String toUnderScoreCase(String s) {
    if (s == null) {
    return null;
    }

     StringBuilder sb = new StringBuilder();
     boolean upperCase = false;
     for (int i = 0; i < s.length(); i++) {
         char c = s.charAt(i);
    
         boolean nextUpperCase = true;
    
         if (i < (s.length() - 1)) {
             nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
         }
    
         if ((i > 0) && Character.isUpperCase(c)) {
             if (!upperCase || !nextUpperCase) {
                 sb.append(SEPARATOR);
             }
             upperCase = true;
         } else {
             upperCase = false;
         }
    
         sb.append(Character.toLowerCase(c));
     }
    
     return sb.toString();
    

    }

    /**

    • 如果不为空,则设置值
    • @param target
    • @param source
      */
      public static void setValueIfNotBlank(String target, String source) {
      if (isNotBlank(source)){
      target = source;
      }
      }

    /**

    • 转换为JS获取对象值,生成三目运算返回结果
    • @param objectString 对象串
    • 例如:row.user.id
    • 返回:!row?’’:!row.user?’’:!row.user.id?’’:row.user.id
      */
      public static String jsGetVal(String objectString){
      StringBuilder result = new StringBuilder();
      StringBuilder val = new StringBuilder();
      String[] vals = split(objectString, “.”);
      for (int i=0; i<vals.length; i++){
      val.append("." + vals[i]);
      result.append("!"+(val.substring(1))+"?’’?;
      }
      result.append(val.substring(1));
      return result.toString();
      }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: org.apache.commons.lang3.stringutils.jar 是一个用于处理字符串的 Java 库。它属于 Apache Commons Lang 项目的一部分。 这个库提供了许多方便且常用的字符串处理方法。比如,它包含了处理空字符串的方法,如判断字符串是否为空或只包含空格、移除字符串中的空格等。它还提供了一些字符串操作的方法,如字符串的截取、连接、反等。此外,它还提供了一些处理字符的方法,如判断字符串是否为数字、字母或空白字符、转换字符串大小写等。 org.apache.commons.lang3.stringutils.jar 还包含了一些处理字符串数组的方法。比如,它提供了根据某个字符或字符串字符串数组连接成一个字符串的方法,也可以将字符串数组按照指定规则进行分割。 此外,这个库还提供了一些处理字符串的其他实用方法,如字符串的填充、重复、截断等。它还提供了一些转换字符串格式的方法,如将字符串转换为 camelCase、snake_case 或 kebab-case 等。 总结来说,org.apache.commons.lang3.stringutils.jar 是一个功能强大且实用的字符串处理库,它提供了丰富的方法来方便开发者对字符串进行各种操作和处理。使用这个库可以有效地简化开发过程,并提高代码的可读性和可维护性。同时,Apache Commons Lang 项目作为一个广泛使用的开源项目,拥有活跃的社区和可靠的技术支持,能够提供稳定可靠的使用体验。 ### 回答2: org.apache.commons.lang3.stringutils.jar 是一个用于字符串操作的Java库,它是Apache Commons项目的一部分。在这个库中,org.apache.commons.lang3.stringutils.jar 提供了许多实用的字符串处理方法和工具类。 首先,该库提供了一系列静态方法,可以对字符串进行常见的操作,例如判断字符串是否为空、去除字符串中的空格、判断字符串是否包含特定字符等。这些方法有助于简化开发人员对字符串的处理和验证。 其次,lib库还提供了各种字符串操作的工具类。例如,StringUtils提供了一系列高效的字符串操作方法,如截取字符串、替换字符串、大小写转换等。此外,StringEscapeUtils提供了用于义HTML、XML和Java字符串的方法,有助于避免特殊字符引起的问题。 此外,该库还包含了一些用于字符串比较和匹配的工具类。例如,StringUtils提供了进行字符串比较的方法,可以根据不同的比较规则进行字符串的比较。此外,RegExUtils提供了一些用于正则表达式匹配的方法,可以方便地根据正则表达式进行模式匹配和替换。 总之,org.apache.commons.lang3.stringutils.jar 提供了丰富的字符串处理方法和工具类,可以简化开发人员对字符串的操作,并且提供了高效、易用的字符串处理解决方案。无论是开发web应用、桌面应用还是其他型的应用,该库都是一个非常有价值的工具。 ### 回答3: org.apache.commons.lang3.stringutils.jar 是一个 Java 库,它是 Apache Commons Lang 的一部分。这个库提供了一系列用于字符串处理的实用方法和工具类。 在 org.apache.commons.lang3.stringutils.jar 中,有很多常用的字符串处理方法,例如: - isBlank() 方法用于判断字符串是否为空白(即全部由空格、制表符、换行符等组成)。 - isEmpty() 方法用于判断字符串是否为空(即长度为0)。 - capitalize() 方法用于将字符串的首字母大写,并将其他字符保持不变。 - uncapitalize() 方法用于将字符串的首字母小写,并将其他字符保持不变。 - join() 方法用于将一个数组或集合中的元素以指定的分隔符连接起来,形成一个新的字符串。 - contains() 方法用于判断字符串是否包含指定的字符序列。 - substring() 方法用于获取字符串的子串。 - swapCase() 方法用于将字符串中的大小写字母进行转换,大写字母转换为小写字母,小写字母转换为大写字母。 除了上述方法外,org.apache.commons.lang3.stringutils.jar 还提供了很多其他实用的字符串处理方法,用于处理字符串的拆分、替换、删除、填充等操作。这些方法都被封装在 StringUtils 中,可以直接调用使用。 在开发过程中,使用 org.apache.commons.lang3.stringutils.jar 可以方便地处理字符串,提高开发效率和代码质量。同时,由于是开源库,还可以根据需要进行修改和定制,使其更符合实际需求。 总之,org.apache.commons.lang3.stringutils.jar 是一个值得使用的字符串处理库,它提供了丰富的方法和工具类,可以简化字符串的处理过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值