包含了:
- 首字母转大写
- 下划线转驼峰
驼峰转下划线 ```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));
}
} ```