java,下划线与驼峰命名转换
2015-06-12 15:10
567 查看
下划线与驼峰命名转换
不纠结""_"+matcher.group(0).toLowerCase()"的话,humpToLine2效率会比humpToLine高一些,看String#replaceAll方法源码即可。
public class Tool{ private static Pattern linePattern = Pattern.compile("_(\\w)"); /**下划线转驼峰*/ public static String lineToHump(String str){ str = str.toLowerCase(); Matcher matcher = linePattern.matcher(str); StringBuffer sb = new StringBuffer(); while(matcher.find()){ matcher.appendReplacement(sb, matcher.group(1).toUpperCase()); } matcher.appendTail(sb); return sb.toString(); } /**驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)})*/ public static String humpToLine(String str){ return str.replaceAll("[A-Z]", "_$0").toLowerCase(); } private static Pattern humpPattern = Pattern.compile("[A-Z]"); /**驼峰转下划线,效率比上面高*/ public static String humpToLine2(String str){ Matcher matcher = humpPattern.matcher(str); StringBuffer sb = new StringBuffer(); while(matcher.find()){ matcher.appendReplacement(sb, "_"+matcher.group(0).toLowerCase()); } matcher.appendTail(sb); return sb.toString(); } public static void main(String[] args) { String lineToHump = lineToHump("f_parent_no_leader"); System.out.println(lineToHump);//fParentNoLeader System.out.println(humpToLine(lineToHump));//f_parent_no_leader System.out.println(humpToLine2(lineToHump));//f_parent_no_leader } }
不纠结""_"+matcher.group(0).toLowerCase()"的话,humpToLine2效率会比humpToLine高一些,看String#replaceAll方法源码即可。
相关文章推荐
- SpringMVC RESTful Json Example
- Java正则表达式(二)
- spring问题:Error creating bean with name 'articleController': Injection of autowired dependencies fail
- 第一章 初识Java
- Spring MVC入门
- SpringMVC导出Excel
- dubbo、zookeeper、Spring整合实例
- java 并发
- java map遍历
- Struts在jsp页面中的一些运用
- java 获取时间相关总结
- 使用Jackson在Java中处理JSON
- Eclipse-LogcatMessageFilter设置自己的Log过滤器
- Java利用Jave转换视频格式为3gp
- 为项目添加Hibernate支持-----SSH框架搭建3
- JAVA中类、实例与Class对象
- java判断IOS还是安卓,跳转不同的连接
- 添加Structs和Spring支持-----SSH框架搭建2
- JAVA字符串谜题
- java.io.FileNotFoundException: /mnt/sdcard/config (Permission denied)