本文主要是介绍java下划线与驼峰命名转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下划线与驼峰命名转换:
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);// fParentNoLeaderSystem.out.println(humpToLine(lineToHump));// f_parent_no_leaderSystem.out.println(humpToLine2(lineToHump));// f_parent_no_leader}
}
不纠结""_"+matcher.group(0).toLowerCase()"的话,humpToLine2效率会比humpToLine高一些,看String#replaceAll方法源码即可。
这篇关于java下划线与驼峰命名转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!