[工具方法][Java]命名方式下划线和驼峰互转实现

2022-01-29 569点热度 0人点赞 0条评论

如题,工具方法,项目中用到的字符命名方式需要互转,不依赖任何第三方库,不挑JDK版本,复制粘贴即可用

下划线命名方式:some_name

驼峰命名方式:someName

public static void main(String[] args) throws Exception {
    System.out.println(underscoreToCamel("some_key"));
    System.out.println(camelToUnderline("someKey"));
}

/**
 * 下划线命名转驼峰方式,例如some_key转成someKey
 */
public static String underscoreToCamel(String underscore) {
    if (underscore == null) {
        return null;
    }
    String[] split = underscore.split("_");
    StringBuilder sb = new StringBuilder(underscore.length());
    for (String s : split) {
        char[] chars = s.toCharArray();
        if (chars[0] < 'A' || chars[0] > 'Z') {
            if (chars[0] >= 'a' && chars[0] <= 'z') {
                chars[0] -= 32;
            }
        }
        sb.append(chars);
    }
    return sb.toString();
}

/**
 * 驼峰转下划线命名方式,例如someKey转成some_key
 */
public static String camelToUnderline(String camel) {
    StringBuilder buf = new StringBuilder();
    for (int i = 0; i < camel.length(); ++i) {
        char ch = camel.charAt(i);
        if (ch >= 'A' && ch <= 'Z') {
            char c = (char) (ch + 32);
            if (i > 0) {
                buf.append('_');
            }
            buf.append(c);
        } else {
            buf.append(ch);
        }
    }
    return buf.toString();
}

另一种更简单的驼峰转SnakeCase的方式:

public static String camelToSnakeCase(String str) {
    return str.replaceAll("([a-z])([A-Z])", "$1_$2").toLowerCase();
}

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论