1 public class HumpUtils {
2 private static final Pattern linePattern = Pattern.compile("_(\\w)");
3 private static final Pattern humpPattern = Pattern.compile("[A-Z]");
4
5 /**下划线转驼峰*/
6 public static String lineHump(String str){
7 str = str.toLowerCase();
8 Matcher matcher = linePattern.matcher(str);
9 StringBuffer sb = new StringBuffer();
10 while(matcher.find()){
11 matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
12 }
13 matcher.appendTail(sb);
14 return sb.toString();
15 }
16 /**驼峰转下划线*/
17 public static String hump2Line(String str){
18 Matcher matcher = humpPattern.matcher(str);
19 StringBuffer sb = new StringBuffer();
20 while(matcher.find()){
21 matcher.appendReplacement(sb, "_"+matcher.group(0).toLowerCase());
22 }
23 matcher.appendTail(sb);
24 return sb.toString();
25 }
26 public static void main(String[] args) {
27 String lineToHump = lineHump("45hhf_parent_no_leader");
28 System.out.println(lineToHump);
29 System.out.println(hump2Line(lineToHump));
30 }
31 }