包含了:
- 首字母转大写
- 下划线转驼峰
驼峰转下划线 ```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) {
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()) {
} matcher.appendTail(sb); return sb.toString(); }matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
/*** 下划线转驼峰*/public static String lineToHumpNoChangeCase(String str) {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 String captureAndLineToHump(String field) {return lineToHumpNoChangeCase(captureName(field));}
} ```
