当前位置 : 主页 > 编程语言 > java >

下划线转驼峰, 驼峰转下划线

来源:互联网 收集:自由互联 发布时间:2021-06-28
下划线转驼峰, 驼峰转下划线 // 声明, 我是在这抄的// http://blog.csdn.net/fly_down/article/details/46471917public class Tool{ private static Pattern linePattern = Pattern.compile("_(\\w)"); /**下划线转驼峰*/ public s
下划线转驼峰, 驼峰转下划线
// 声明, 我是在这抄的
// http://blog.csdn.net/fly_down/article/details/46471917
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方法源码即可。
网友评论