复制

下划线与驼峰互转工具

本页面免费为大家提供驼峰与下划线互转工具,在线驼峰转下划线,变量,类名,属性名,函数等命名的驼峰与下划线相互转换。

/**
 * 将驼峰风格替换为下划线风格例子
 */
public static String camelhumpToUnderline(String str) {
    final int size;
    final char[] chars;
    final StringBuilder sb = new StringBuilder(
            (size = (chars = str.toCharArray()).length) * 3 / 2 + 1);
    char c;
    for (int i = 0; i < size; i++) {
        c = chars[i];
        if (isUppercaseAlpha(c)) {
            sb.append('_').append(toLowerAscii(c));
        } else {
            sb.append(c);
        }
    }
    return sb.charAt(0) == '_' ? sb.substring(1) : sb.toString();
}

/**
 * 将下划线风格替换为驼峰风格例子
 */
public static String underlineToCamelhump(String str) {
    Matcher matcher = UNDERLINE_TO_CAMELHUMP_PATTERN.matcher(str);
    StringBuilder builder = new StringBuilder(str);
    for (int i = 0; matcher.find(); i++) {
        builder.replace(matcher.start() - i, matcher.end() - i, matcher.group().substring(1).toUpperCase());
    }
    if (Character.isUpperCase(builder.charAt(0))) {
        builder.replace(0, 1, String.valueOf(Character.toLowerCase(builder.charAt(0))));
    }
    return builder.toString();
}