范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

100个Java工具类之2字符串之多种个性化格式处理

  该系列为java工具类系列,主要展示100个常用的java工具类。
  此文重点讲述:字符串之个性化格式处理。
  一、个性化字符串工具类(本文重点) package com.abc.util;  import java.util.List; import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern;  /**  * 字符串工具类  *  * @author goln  */ public class StringUtils {      public static final String NUMBER_REGEX = "([0-9]d*.?d*)||(0.d*[1-9])";      public static boolean isNull(String str) {         if (null==str) {             return true;         } else {             return str.trim().length() == 0 || "".equals(str);         }     }      //判断字符串是否是数字     public static boolean isNumber(String s) {         return s.matches(NUMBER_REGEX);     }      //获取字符串中的数字     public static String getNumbers(String content) {         Pattern pattern = Pattern.compile("d+");         Matcher matcher = pattern.matcher(content);         while (matcher.find()) {             return matcher.group(0);         }         return "";     }      /**      * 去除字符串开头的指定字符      *      * @param stream 原始字符串      * @param trim   要删除的字符串      * @return      */     public static String StringStartTrim(String stream, String trim) {         // null或者空字符串的时候不处理         if (stream == null || stream.length() == 0 || trim == null || trim.length() == 0) {             return stream;         }         // 要删除的字符串结束位置         int end;         // 正规表达式         String regPattern = "[" + trim + "]*+";         Pattern pattern = Pattern.compile(regPattern, Pattern.CASE_INSENSITIVE);         // 去掉原始字符串开头位置的指定字符         Matcher matcher = pattern.matcher(stream);         if (matcher.lookingAt()) {             end = matcher.end();             stream = stream.substring(end);         }         // 返回处理后的字符串         return stream;     }      /**      * List转以逗号分隔的String      *      * @param data      * @return      */     public static String ListToString(List data) {         StringBuilder sb = new StringBuilder();         for (int i = 0; i < data.size(); i++) {             if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!                 sb.append(",");             }             sb.append(data.get(i));         }         return sb.toString();     }      public static String addRightSpace(String str, int length) {         int str_length = str.length();          for(int i = 0; i < length - str_length; ++i) {             str = str + " ";         }          return str;     }      public static byte[] hexStringToBytes(String src) {         byte[] ret = new byte[src.length() / 2];         byte[] tmp = src.getBytes();          for(int i = 0; i < src.length() / 2; ++i) {             ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);         }         return ret;     }      /**      * 随机生成六位数验证码      * @return      */     public static int getRandomNum(){         Random r = new Random();         return r.nextInt(900000)+100000;     }      /**      * 随机生成四位数验证码      * @return      */     public static int getRandomNum4(){         Random r = new Random();         return r.nextInt(9000)+1000;     }      /**      * 去空格      */     public static String trim(String str) {         return (str == null ? "" : str.trim());     }      /**      * 截取字符串      *      * @param str   字符串      * @param start 开始      * @return 结果      */     public static String substring(final String str, int start) {         if (str == null) {             return "";         }          if (start < 0) {             start = str.length() + start;         }          if (start < 0) {             start = 0;         }         if (start > str.length()) {             return "";         }          return str.substring(start);     }      /**      * 截取字符串      *      * @param str   字符串      * @param start 开始      * @param end   结束      * @return 结果      */     public static String substring(final String str, int start, int end) {         if (str == null) {             return "";         }          if (end < 0) {             end = str.length() + end;         }         if (start < 0) {             start = str.length() + start;         }          if (end > str.length()) {             end = str.length();         }          if (start > end) {             return "";         }          if (start < 0) {             start = 0;         }         if (end < 0) {             end = 0;         }          return str.substring(start, end);     }      /**      * 下划线转驼峰命名      */     public static String toUnderScoreCase(String str) {         if (str == null) {             return null;         }         StringBuilder sb = new StringBuilder();         // 前置字符是否大写         boolean preCharIsUpperCase = true;         // 当前字符是否大写         boolean curreCharIsUpperCase = true;         // 下一字符是否大写         boolean nexteCharIsUpperCase = true;         for (int i = 0; i < str.length(); i++) {             char c = str.charAt(i);             if (i > 0) {                 preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));             } else {                 preCharIsUpperCase = false;             }              curreCharIsUpperCase = Character.isUpperCase(c);              if (i < (str.length() - 1)) {                 nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));             }              if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {                 sb.append("_");             } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {                 sb.append("_");             }             sb.append(Character.toLowerCase(c));         }          return sb.toString();     }      /**      * 是否包含字符串      *      * @param str  验证字符串      * @param strs 字符串组      * @return 包含返回true      */     public static boolean inStringIgnoreCase(String str, String... strs) {         if (str != null && strs != null) {             for (String s : strs) {                 if (str.equalsIgnoreCase(trim(s))) {                     return true;                 }             }         }         return false;     }      /**      * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld      *      * @param name 转换前的下划线大写方式命名的字符串      * @return 转换后的驼峰式命名的字符串      */     public static String convertToCamelCase(String name) {         StringBuilder result = new StringBuilder();         // 快速检查         if (name == null || name.isEmpty()) {             // 没必要转换             return "";         } else if (!name.contains("_")) {             // 不含下划线,仅将首字母大写             return name.substring(0, 1).toUpperCase() + name.substring(1);         }         // 用下划线将原始字符串分割         String[] camels = name.split("_");         for (String camel : camels) {             // 跳过原始字符串中开头、结尾的下换线或双重下划线             if (camel.isEmpty()) {                 continue;             }             // 首字母大写             result.append(camel.substring(0, 1).toUpperCase());             result.append(camel.substring(1).toLowerCase());         }         return result.toString();     }      /**      * 手机号简单验证      *      * @param phoneNumber      * @return 验证通过返回true      */     public static boolean isPhone(String phoneNumber) {         return Pattern.compile("^[1][0-9]{10}#34;).matcher(phoneNumber).matches();     }  }
  二、org.springframework.util.StringUtils包有多个常用字符串处理方法//1.1 字符串判断方法 // 判断字符串是否为 null,或 ""。注意,包含空白符的字符串为非空 boolean isEmpty(Object str) // 判断字符串是否是以指定内容结束。忽略大小写 boolean endsWithIgnoreCase(String str, String suffix) // 判断字符串是否已指定内容开头。忽略大小写 boolean startsWithIgnoreCase(String str, String prefix)  // 是否包含空白符 boolean containsWhitespace(String str) // 判断字符串非空且长度不为 0,即,Not Empty boolean hasLength(CharSequence str) // 判断字符串是否包含实际内容,即非仅包含空白符,也就是 Not Blank boolean hasText(CharSequence str) // 判断字符串指定索引处是否包含一个子串。 boolean substringMatch(CharSequence str, int index, CharSequence substring) //1.2 字符串处理方法 // 计算一个字符串中指定子串的出现次数 int countOccurrencesOf(String str, String sub) // 查找并替换指定子串 String replace(String inString, String oldPattern, String newPattern) // 去除尾部的特定字符 String trimTrailingCharacter(String str, char trailingCharacter)  // 去除头部的特定字符 String trimLeadingCharacter(String str, char leadingCharacter) // 去除头部的空白符 String trimLeadingWhitespace(String str) // 去除头部的空白符 String trimTrailingWhitespace(String str) // 去除头部和尾部的空白符 String trimWhitespace(String str) // 删除开头、结尾和中间的空白符 String trimAllWhitespace(String str) // 删除指定子串 String delete(String inString, String pattern) // 删除指定字符(可以是多个) String deleteAny(String inString, String charsToDelete) // 对数组的每一项执行 trim() 方法 String[] trimArrayElements(String[] array) // 将 URL 字符串进行解码 String uriDecode(String source, Charset charset) //1.3 路径相关方法 // 解析路径字符串,优化其中的 ".."  String cleanPath(String path) // 解析路径字符串,解析出文件名部分 String getFilename(String path) // 解析路径字符串,解析出文件后缀名 String getFilenameExtension(String path) // 比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的 ".."  boolean pathEquals(String path1, String path2) // 删除文件路径名中的后缀部分 String stripFilenameExtension(String path)  // 以 ". 作为分隔符,获取其最后一部分 String unqualify(String qualifiedName) // 以指定字符作为分隔符,获取其最后一部分 String unqualify(String qualifiedName, char separator)
  三、String与Map、Json、Date等互转工具类//3.1 Map转String Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); System.out.println(map.toString());  //3.2 String转Map public static Map mapStringToMap(String str){     str = str.substring(1, str.length()-1);     String[] strs = str.split(",");     Map map = new HashMap();     for (String string : strs) {         String key = string.split("=")[0];         String value = string.split("=")[1];         // 去掉头部空格         String key1 = key.trim();         String value1 = value.trim();         map.put(key1, value1);     }     return map; } 	 //3.3Map转换成Json JSONObject JSONObj = JSONObject.parseObject(JSON.toJSONString(map));  //3.4 Json字符串转换成Map Map strMap =  JSONObject.parseObject(jsonStr);  //3.5 Json对象转Map  /*JSON对象转map常用*/ Map jsonToMap =  JSONObject.parseObject(jsonObject.toJSONString());  //3.6 String转json JSONObject  jasonObject = JSONObject.fromObject(str);  //3.7 Json转String String str = JSON.toJSONString(obj/array);  //3.8 String转Date public static Date transferString2Date(String s) {     Date date = new Date();     try {         date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(s);     } catch (ParseException e) {         //LOGGER.error("时间转换错误, string = {}", s, e);     }     return date; }  //3.9 Date转String Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = simpleDateFormat.format(date); Date d = simpleDateFormat.parse(time);
  本文仅供个人记录,大家可以借鉴,每行代码都是自己手打,亲测可直接粘贴执行,如有任何问题可在评论区提问,欢迎大家交流。
  编辑人:程序幻境
  码字不易,不喜勿踩

七周年限定延期,10点券开高级史诗,S3赛季皮肤返场,V7专属突袭如期将至的时间,眼看王者七周年即将到来,可是七周年的限定皮肤却目前都没有爆料,可能是因为某些敏感的原因,官方现如今官网都没有任何爆料消息已经停更好几天了。七周年限定延期就目前来看的地下城与勇士手游10。27更新一览,新职业时装公布,修炼场改版勇士新头塔揭晓新的角色战士终于在一个星期前发布。冒险家们也给予了极大的关注,为开发完成工作加油助威。为了回应您对我们的兴趣,我们首先向您展示一些勇士的新头像。此外,我们为庆祝勇士的彩虹岛手游彩虹十月,点靓金秋今年的十月金秋,彩虹岛手游横空出世这其中有很多没有参加过内测的新玩家玩家,所以很多玩家都不怎么会玩,这里我简单整理了一个攻略,希望大家少走弯路。干货满满1开服练级篇游戏的第一步是创车车解说被骂惨,一身小宝引发争议,业务能力有待提升近日举办的雷霆杯相信大家都有所耳闻吧,目前该赛事还在火热进行中,虽然相比于大型比赛,这款赛事的规模并不是很大,但人气也是很高的。所以不管是选手还是解说都受到了不少的关注度。这不,近老年人补钙两方面下手今晚报讯(记者刘波)随着年龄的增长,很多老年人都面临缺钙的问题。天津市公共营养师王鑫提示,老年人补钙可以从饮食和服用钙剂这两个方面入手。在饮食上,可多食用钙含量高的食物。每天一杯牛班拉曼酒店五人八日泰国自由行之人间天堂14通往海滩的后院游泳池环绕四周水池之间小桥相连院内绿树成荫露天餐厅,记得桌上有烟灰缸后院全貌手机拍的酒店内部游客前往巴东海滩酒店内部,手机像素太低,只留一个记忆班拉曼酒店,是猴子的大请了保姆以后,九岁的孩子变得嗜睡,父母查监控,奖励保姆一套房现在人们的生活质量越来越高,不过呢,陪伴孩子的时间却越来越少。因为大部分的家庭,父母同时上班,虽然孩子少,但是陪伴孩子的时间更少。为了以后更好的生活,大部分家庭只能父母同时上班,如爆料师公出轨演员关婷娜,赵本山年轻时婚内出轨,和农村妻子离婚2022年2月,赵四的徒弟娇娇在网上揭老赵的短,而赵四是赵本山的徒弟,算起来娇娇就是赵本山的徒孙。有好奇宝宝就问了,赵本山与女演员关婷娜的绯闻是不是真的。张玉娇回了五个字真实的故事康利和妻子近照,没进过全明星,却赚了2。3亿,妻子很漂亮球员的薪水,很多时候是实力的体现,当今联盟的顶级球星,个个都是手握顶薪合同。不过追求大合同,有时候需要运气。考辛斯小托马斯等人就是实力了得,却因为伤病没赚多少钱。而帕森斯巴图姆等球23134!6粒三分4次大帽,火箭两大新人完美诠释天赋文水清清北京时间10月23日,火箭9090不敌雄鹿。双方实力上的差距不言而喻,所以,过程更重要,格林22分4篮板2助攻,波特18分5篮板7助攻2抢断,申京9分9篮板,固有的三位核心真会玩!长沙年轻父母自驾1小时找到好多亲子乐园今日女报凤网记者冯晓雅实习生陈雪炎最近一段时间,是长沙难得的秋高气爽天气。20摄氏度左右的气温,阳光和煦,树叶婆娑,秋风温柔,舒适的天气适合遛娃。这不,会玩的长沙人新近开发了城市周
意外把蕾丝内裤弄丢在了学校食堂?结果哈哈哈这下彻底尴尬了今天的各位宝子们有没有一如既往保持开心呢今日份快乐已送达快快来查收咯01hr我的粗心室友哈哈哈哈好家伙代入了一下差点原地去世02hr接到一个中介电话之后出国可以,出小区不行03hr超长真续航电力在线丨深秋试驾极狐阿尔法T疫情当下,你已经多久没有开启一场旅行?远离城市喧嚣,怀揣着内心的诗和远方,在山峦湖泊间,支起一顶帐篷,以天为幕,开启一段轻松浪漫的露营生活,让在无法远行的日子里,也能感受自由。9月国潮露营持续出圈,是跟风还是真潮流?当下,国潮露营风潮大起,正在为文旅行业增添强劲的活力生机,不断创新着消费者的户外活动体验。随着生活品质的提升,年轻人不断追求个性化,传统的旅游形式无法满足年轻人的需求,拍照打卡发朋推荐5款口碑好的啤酒,原料不含大米,看世界杯囤在家里畅快喝世界杯已经开赛了,相信有不少朋友会经常熬夜观看比赛。看球的时候自然是不能少了啤酒助兴,但好球需配好酒,若是买到了添加大米酒花浸膏等没有太多滋味的工业水啤,喝起来是很破坏心情和兴致的口碑崩销量涨宝可梦朱紫还有多少情怀能消费知名游戏公司任天堂公布了旗下Switch平台的游戏累计销量,榜单前10名的作品中,宝可梦IP游戏占据3席。而近日发售的游戏宝可梦朱紫也保持了宝可梦IP的畅销势头,首发3天销量破千万盘点金煌2022品质过硬,口碑加持,赢得市场2022年很快就要走到尾声。这一年,金煌装饰通过调整思路扩大服务范围,以消费者满意为核心,推出了多款好住不贵的普惠型健康整装,业绩逆市上扬。成绩的取得离不开新老业主的支持,在消费低CBA三消息上海爆发内讧,四川裁掉哈达迪上海男篮爆发内讧。北京时间11月26日,根据媒体人爆料,上海男篮在休赛期期间在人员调整上出现较为尴尬的问题,状元郎区俊炫因不满被球队雪藏,已经提出离队的申请,并且区俊炫的经济人已经中签率仅有0。631。7万人抽签抢微软国行XSX就在不久前,微软宣布国行XboxSeriesX补货110台,但需要玩家抽选购买资格,那么你为什么抽不到呢?11月28日今天,微软官方公布了此次抽选活动的中签名单,实际参与抽签人数为失眠就是痰烧得太烫了,一张方即可基本解决失眠就是痰烧得太烫了,一张方即可基本解决前一阵子去一个村子义诊时,碰见了一位失眠的患者。主要表现为入睡很困难,心烦意乱,也多梦。还有食欲差倦怠乏力记忆力减退心悸心慌的情况。看舌脉,胡锡进建议不要继续大规模建方舱!背后的原因可能比较复杂?一些无症状感染者跟轻症感染者要评估一下是否有必要大规模进入方舱!一般的轻症患者几乎都是可以自愈的,其实有条件的话在家中做好隔离是完全可行的。如果去方舱集中隔离的话,对患者的心理负担想吃酸辣粉不用去外边买,在家就可以做,2元轻松搞定,酸辣过瘾嗨大家好!我是小猫爱厨房的小猫,今天又和大家见面了,分享生活分享美食分享快乐!今天给大家带来的是一道用红薯粉条制作的酸辣粉条,做好的粉条特别爽口,味道麻辣酸香,特别开胃的美食,大家