将”“转换成驼峰,将驼峰转换成”“。

    1. import java.util.regex.Matcher;
    2. import java.util.regex.Pattern;
    3. /**
    4. * 驼峰转换
    5. * @author 胡汉三
    6. * 2017年1月19日 下午4:42:58
    7. */
    8. public class BeanHump {
    9. //转变的依赖字符
    10. public static final char UNDERLINE='_';
    11. /**
    12. * 将驼峰转换成"_"(userId:user_id)
    13. * @param param
    14. * @return
    15. */
    16. public static String camelToUnderline(String param){
    17. if (param==null||"".equals(param.trim())){
    18. return "";
    19. }
    20. int len=param.length();
    21. StringBuilder sb=new StringBuilder(len);
    22. for (int i = 0; i < len; i++) {
    23. char c=param.charAt(i);
    24. if (Character.isUpperCase(c)){
    25. sb.append(UNDERLINE);
    26. sb.append(Character.toLowerCase(c));
    27. }else{
    28. sb.append(c);
    29. }
    30. }
    31. return sb.toString();
    32. }
    33. /**
    34. * 将"_"转成驼峰(user_id:userId)
    35. * @param param
    36. * @return
    37. */
    38. public static String underlineToCamel(String param){
    39. if (param==null||"".equals(param.trim())){
    40. return "";
    41. }
    42. int len=param.length();
    43. StringBuilder sb=new StringBuilder(len);
    44. for (int i = 0; i < len; i++) {
    45. char c=param.charAt(i);
    46. if (c==UNDERLINE){
    47. if (++i<len){
    48. sb.append(Character.toUpperCase(param.charAt(i)));
    49. }
    50. }else{
    51. sb.append(c);
    52. }
    53. }
    54. return sb.toString();
    55. }
    56. /**
    57. * 将"_"转成驼峰(user_id:userId)
    58. * @param param
    59. * @return
    60. */
    61. public static String underlineToCamel2(String param){
    62. if (param==null||"".equals(param.trim())){
    63. return "";
    64. }
    65. StringBuilder sb=new StringBuilder(param);
    66. Matcher mc= Pattern.compile(UNDERLINE+"").matcher(param);
    67. int i=0;
    68. while (mc.find()){
    69. int position=mc.end()-(i++);
    70. String.valueOf(Character.toUpperCase(sb.charAt(position)));
    71. sb.replace(position-1,position+1,sb.substring(position,position+1).toUpperCase());
    72. }
    73. return sb.toString();
    74. }
    75. /*
    76. * 测试
    77. */
    78. public static void main(String[] args) {
    79. System.out.println(camelToUnderline("userNameAll"));
    80. System.out.println(underlineToCamel("user_name_all"));
    81. System.out.println(underlineToCamel2("user_name_all"));
    82. }
    83. }

    运行结果:
    java 驼峰转换 - 图1
    原文链接:https://blog.csdn.net/hzw2312/article/details/54617733