java驼峰转换的方法
更新时间:2018年07月09日 08:34:41 作者:小爷胡汉三
这篇文章主要为大家详细介绍了java驼峰转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了java驼峰转换的具体代码,供大家参考,具体内容如下
将"_"转换成驼峰,将驼峰转换成"_"。
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 驼峰转换 * @author 胡汉三 * 2017年1月19日 下午4:42:58 */ public class BeanHump { //转变的依赖字符 public static final char UNDERLINE='_'; /** * 将驼峰转换成"_"(userId:user_id) * @param param * @return */ public static String camelToUnderline(String param){ if (param==null||"".equals(param.trim())){ return ""; } int len=param.length(); StringBuilder sb=new StringBuilder(len); for (int i = 0; i < len; i++) { char c=param.charAt(i); if (Character.isUpperCase(c)){ sb.append(UNDERLINE); sb.append(Character.toLowerCase(c)); }else{ sb.append(c); } } return sb.toString(); } /** * 将"_"转成驼峰(user_id:userId) * @param param * @return */ public static String underlineToCamel(String param){ if (param==null||"".equals(param.trim())){ return ""; } int len=param.length(); StringBuilder sb=new StringBuilder(len); for (int i = 0; i < len; i++) { char c=param.charAt(i); if (c==UNDERLINE){ if (++i<len){ sb.append(Character.toUpperCase(param.charAt(i))); } }else{ sb.append(c); } } return sb.toString(); } /** * 将"_"转成驼峰(user_id:userId) * @param param * @return */ public static String underlineToCamel2(String param){ if (param==null||"".equals(param.trim())){ return ""; } StringBuilder sb=new StringBuilder(param); Matcher mc= Pattern.compile(UNDERLINE+"").matcher(param); int i=0; while (mc.find()){ int position=mc.end()-(i++); String.valueOf(Character.toUpperCase(sb.charAt(position))); sb.replace(position-1,position+1,sb.substring(position,position+1).toUpperCase()); } return sb.toString(); } /* * 测试 */ public static void main(String[] args) { System.out.println(camelToUnderline("userNameAll")); System.out.println(underlineToCamel("user_name_all")); System.out.println(underlineToCamel2("user_name_all")); } }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringBoot使用DevTools实现后端热部署的过程详解
在Spring Boot项目中,Spring Boot官方提供你了Devtools热部署模块,通过maven的方式导入就能使用,本文主要SpringBoot通过DevTools实现热部署,感兴趣的朋友一起看看吧2023-11-11Mybatis如何使用动态语句实现批量删除(delete结合foreach)
这篇文章主要介绍了Mybatis如何使用动态语句实现批量删除(delete结合foreach),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03详解spring cloud config实现datasource的热部署
这篇文章主要介绍了详解spring cloud config实现datasource的热部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-01-01springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服务的坑
这篇文章主要介绍了springboot2.0+elasticsearch5.5+rabbitmq搭建搜索服务的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-06-06SpringBoot启动时如何通过启动参数指定logback的位置
这篇文章主要介绍了SpringBoot启动时如何通过启动参数指定logback的位置,在spring boot中,使用logback配置的方式常用的有两种,本文给大家介绍的非常详细,需要的朋友可以参考下2023-07-07java 汉诺塔Hanoi递归、非递归(仿系统递归)和非递归规律 实现代码
汉诺塔(Hanoi) 算法Java实现。通过三个函数,分别对Hanoi进行递归、非递归和非递归规律实现。2013-05-05
最新评论