日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

發布時間:2025/3/19 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

轉換為字節數組;是否包含字符串;替換掉HTML標簽方法;替換為手機識別的HTML,去掉樣式及屬性,保留回車;

縮略字符串(不區分中英文字符);轉換為Double類型;轉換為Float類型;轉換為Long類型;轉換為Integer類型;

獲得i18n字符串;獲得用戶遠程地址;駝峰命名法工具;轉換為JS獲取對象值,生成三目運算返回結果;

通過正則表達式獲取內容;

實現

import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import com.google.common.collect.Lists;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類**/ 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", "<br/>"), "\t", "&nbsp; &nbsp; ");}/*** 縮略字符串(不區分中英文字符)** @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 "";}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特殊字符,如&nbsp;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();}/*** 轉換為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();}/*** 通過正則表達式獲取內容** @param regex 正則表達式* @param from? 原字符串* @return*/public static String[] regex(String regex, String from) {Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(from);List<String> results = new ArrayList<String>();while (matcher.find()) {for (int i = 0; i < matcher.groupCount(); i++) {results.add(matcher.group(i + 1));}}return results.toArray(new String[]{});}}

?

總結

以上是生活随笔為你收集整理的Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 嫩草嫩草嫩草嫩草嫩草 | 欧美一区二区三区黄片 | 精品福利一区二区三区 | 国产3p露脸普通话对白 | 久久久一二三 | 日本不卡一区二区三区 | 成人熟女一区二区 | 国产乱大交 | 日韩精品一卡二卡 | 壮汉被书生c到合不拢腿 | 全黄毛片 | 亚洲色欲色欲www | 毛片一级在线观看 | 五月婷婷色 | 中文字幕一区二区人妻视频 | 中文精品无码中文字幕无码专区 | 男人操女人免费 | 伊人伊人| 欧美一区三区三区高中清蜜桃 | 综合久久精品 | 九九热免费精品视频 | 国产乱码在线观看 | 美女大黄动图 | 日美一级片 | 午夜视频在线观看视频 | 日韩毛片免费看 | 欧美77777 | 日韩免费av片 | 大香蕉毛片| 六月婷婷网| 操操操操网 | 色呦呦网站| 日韩精品极品视频免费观看 | 制服下的诱惑暮生 | 久久精品三级视频 | 国产黄色高清视频 | 一区日韩| 天天射,天天干 | 国产夜色视频 | 相亲对象是问题学生在线观看 | jizz欧美性11| 特级丰满少妇一级aaaa爱毛片 | 欧美aaaaaaaaa | 99视频导航| 亚洲h | 影音先锋亚洲精品 | 色呦呦在线看 | 永久免费在线视频 | 日本三级欧美三级 | 中文字幕人妻一区二区在线视频 | 伊人影院综合在线 | 亚洲国产精品一区二区尤物区 | 国内久久久 | 都市豪门艳霸淫美妇 | 性福宝av | 国产资源免费 | 欧美激情精品久久 | 亚洲a影院| 日本黄在线观看 | 西欧free性满足hd老熟妇 | 免费a在线观看播放 | 95看片淫黄大片一级 | 欧美黄色性视频 | 中文字幕免费高清 | 91久久精品无码一区二区 | 欧美变态视频 | 日韩欧美一卡二卡 | 成年人www | 伊人网成人 | 亚洲性生活片 | 精品国产a线一区二区三区东京热 | 成人片网址 | 三级电影在线看 | 成全世界免费高清观看 | 天天干天天操天天爱 | 天堂视频免费在线观看 | 亚洲一区二区三区四区在线 | 成人深夜网站 | 人人爽人人 | 亚洲人成电影在线播放 | 日韩欧美日本 | aⅴ在线免费观看 | 日本中文字幕在线播放 | 91精品国产91久久久久久吃药 | 又黄又免费的网站 | 国产一区二区三区视频在线播放 | jizz亚洲女人高潮大叫 | 成人在线观看免费网站 | 国产色婷婷一区二区 | 正在播放一区二区 | 日韩精品无码一区二区三区 | 青青青在线免费观看 | 国产不卡视频一区二区三区 | 亚洲一二三精品 | 中文字幕高清在线免费播放 | 97久久国产精品 | 激情欧美一区二区三区 | 最好看的中文字幕 | 91午夜交换视频 |