-
gauva
-
驼峰转下划线
-
String hello = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,"helloWorld");
-
-
下划线转驼峰
-
String hello = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL,"hello_word");
-
-
如果出现字符串为:helloWord_Case,会转换为:
- 下划线:hello_world_case;
- 驼峰:hellowordCase
- 这种输出和标准的驼峰/下划线不太一样
-
-
Hutool
-
下划线转驼峰
-
String hello1 = StrUtil.toCamelCase("hello_world");
-
-
驼峰转下划线
-
String hello2 = StrUtil.toUnderlineCase("helloWorld");
-
-
对于helloWorld_Case,输出结果为:
- 驼峰:helloworldCase
- 下划线:hello_world_case
-
-
自定义实现
-
下划线转驼峰
-
找到下划线,然后去掉他,下一个字符转到大写续上,如果下一个还是下划线,那么继续找下一个
-
public static String toCamelCase(String name){ if(null == name || name.length() == 0){ return null; } int length = name.length(); StringBuilder sb = new StringBuilder(length); boolean underLineNextChar = false; for(int i=0; i< length; i++){ char c = name.charAt(i); if(c == UNDER_LINE){ underLineNextChar = true; }else if(underLineNextChar){ sb.append(Character.toUpperCase(c)); underLineNextChar = false; }else{ sb.append(c); } } return sb.toString(); }
-
-
驼峰转下划线
-
大写的,则前位补一个下划线,当前字符转小写,如果前面已经是一个下划线了,那么前面不补,直接转小写
-
public static String toUnderCase(String name){ if(name == null){ return null; } int len = name.length(); StringBuilder sb = new StringBuilder(len+2); char pre = 0; for(int i=0;i<len;i++){ char ch = name.charAt(i); if(Character.isUpperCase(ch)){ if(pre != UNDER_LINE){ res.append(UNDER_LINE); } res.append(Character.toLowerCase(ch)); }else{ res.append(ch); } pre = ch; } return res.toString(); }
-
-
测试helloWorld_Case:
- 驼峰:helloWorldCase;
- 下划线:hello_world_case
-