包含了:

    • 首字母转大写
    • 下划线转驼峰
    • 驼峰转下划线 ```java /**

      • @author xq
      • @date 2022/03/24 15:00
      • @describe 字符工具类 */ public class StrUtil { private static Pattern linePattern = Pattern.compile(“_(\w)”);

        /**

        • 首字母转大写 *
        • @param name
        • @return */ public static String captureName(String name) { // name = name.substring(0, 1).toUpperCase() + name.substring(1); // return name;

          char[] cs = name.toCharArray(); if (cs[0] >= 97 && cs[0] <= 122) {

          1. cs[0] -= 32;

          } return String.valueOf(cs); }

        /**

        • 下划线转驼峰 */ public static String lineToHump(String str) { str = str.toLowerCase(); Matcher matcher = linePattern.matcher(str); StringBuffer sb = new StringBuffer(); while (matcher.find()) {
          1. matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
          } matcher.appendTail(sb); return sb.toString(); }
    1. /**
    2. * 下划线转驼峰
    3. */
    4. public static String lineToHumpNoChangeCase(String str) {
    5. Matcher matcher = linePattern.matcher(str);
    6. StringBuffer sb = new StringBuffer();
    7. while (matcher.find()) {
    8. matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
    9. }
    10. matcher.appendTail(sb);
    11. return sb.toString();
    12. }
    13. /**
    14. * 驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)})
    15. */
    16. public static String humpToLine(String str) {
    17. return str.replaceAll("[A-Z]", "_$0").toLowerCase();
    18. }
    19. private static Pattern humpPattern = Pattern.compile("[A-Z]");
    20. /**
    21. * 驼峰转下划线,效率比上面高
    22. */
    23. public static String humpToLine2(String str) {
    24. Matcher matcher = humpPattern.matcher(str);
    25. StringBuffer sb = new StringBuffer();
    26. while (matcher.find()) {
    27. matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
    28. }
    29. matcher.appendTail(sb);
    30. return sb.toString();
    31. }
    32. public static String captureAndLineToHump(String field) {
    33. return lineToHumpNoChangeCase(captureName(field));
    34. }

    } ```