在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

Java字符串工具类

2016-12-20 13:17| 发布者: zhangjf| 查看: 503| 评论: 0

摘要: /** * Copyright copy; 2012-2013 a href=https://github.com/thinkgem/jeesiteJeeSite/a All rights reserved. * * Licensed under the Apache License, Version 2.0 (the License); */ p ...
  1. /**
  2. * Copyright &copy; 2012-2013 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. */
  6. package com.midai.util;
  7. import java.io.UnsupportedEncodingException;
  8. import java.util.Locale;
  9. import java.util.regex.Matcher;
  10. import java.util.regex.Pattern;
  11. import javax.servlet.http.HttpServletRequest;
  12. import org.apache.commons.lang3.StringEscapeUtils;
  13. import org.springframework.web.context.request.RequestContextHolder;
  14. import org.springframework.web.context.request.ServletRequestAttributes;
  15. /**
  16. * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类
  17. * @author ThinkGem
  18. * @version 2013-05-22
  19. */
  20. public class StringUtils extends org.apache.commons.lang3.StringUtils {
  21. public static String lowerFirst(String str){
  22. if(StringUtils.isBlank(str)) {
  23. return "";
  24. } else {
  25. return str.substring(0,1).toLowerCase() + str.substring(1);
  26. }
  27. }
  28. public static String upperFirst(String str){
  29. if(StringUtils.isBlank(str)) {
  30. return "";
  31. } else {
  32. return str.substring(0,1).toUpperCase() + str.substring(1);
  33. }
  34. }
  35. /**
  36. * 替换掉html标签方法
  37. */
  38. public static String replaceHtml(String html) {
  39. if (isBlank(html)){
  40. return "";
  41. }
  42. String regEx = "<.+?>";
  43. Pattern p = Pattern.compile(regEx);
  44. Matcher m = p.matcher(html);
  45. String s = m.replaceAll("");
  46. return s;
  47. }
  48. /**
  49. * 缩略字符串(不区分中英文字符)
  50. * @param str 目标字符串
  51. * @param length 截取长度
  52. * @return
  53. */
  54. public static String abbr(String str, int length) {
  55. if (str == null) {
  56. return "";
  57. }
  58. try {
  59. StringBuilder sb = new StringBuilder();
  60. int currentLength = 0;
  61. for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) {
  62. currentLength += String.valueOf(c).getBytes("GBK").length;
  63. if (currentLength <= length - 3) {
  64. sb.append(c);
  65. } else {
  66. sb.append("...");
  67. break;
  68. }
  69. }
  70. return sb.toString();
  71. } catch (UnsupportedEncodingException e) {
  72. e.printStackTrace();
  73. }
  74. return "";
  75. }
  76. /**
  77. * 缩略字符串(替换html)
  78. * @param str 目标字符串
  79. * @param length 截取长度
  80. * @return
  81. */
  82. public static String rabbr(String str, int length) {
  83. return abbr(replaceHtml(str), length);
  84. }
  85. /**
  86. * 转换为Double类型
  87. */
  88. public static Double toDouble(Object val){
  89. if (val == null){
  90. return 0D;
  91. }
  92. try {
  93. return Double.valueOf(trim(val.toString()));
  94. } catch (Exception e) {
  95. return 0D;
  96. }
  97. }
  98. /**
  99. * 转换为Float类型
  100. */
  101. public static Float toFloat(Object val){
  102. return toDouble(val).floatValue();
  103. }
  104. /**
  105. * 转换为Long类型
  106. */
  107. public static Long toLong(Object val){
  108. return toDouble(val).longValue();
  109. }
  110. /**
  111. * 转换为Integer类型
  112. */
  113. public static Integer toInteger(Object val){
  114. return toLong(val).intValue();
  115. }
  116. /**
  117. * 获得用户远程地址
  118. */
  119. public static String getRemoteAddr(HttpServletRequest request){
  120. String remoteAddr = request.getHeader("X-Real-IP");
  121. if (isNotBlank(remoteAddr)) {
  122. remoteAddr = request.getHeader("X-Forwarded-For");
  123. }else if (isNotBlank(remoteAddr)) {
  124. remoteAddr = request.getHeader("Proxy-Client-IP");
  125. }else if (isNotBlank(remoteAddr)) {
  126. remoteAddr = request.getHeader("WL-Proxy-Client-IP");
  127. }
  128. return remoteAddr != null ? remoteAddr : request.getRemoteAddr();
  129. }
  130. }
复制代码

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-8 14:52

Copyright 2015-2025 djqfx

返回顶部