You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何获取首字母大写其余小写格式的枚举值

Java枚举值转首字母大写格式实现方案

Java枚举默认通过name()方法返回的是枚举定义时写的全大写字符串,要拿到「首字母大写、其余字母小写」的结果,有两种常用实现方式:

方案1:枚举内部封装格式化方法(推荐)

直接在枚举类里新增自定义方法,逻辑内聚,调用最方便,示例代码如下:

public enum Color {
    RED,
    YELLOW,
    BLACK;

    // 返回首字母大写、其余小写的格式化枚举名
    public String getFormattedName() {
        // 先把原始枚举名全转小写
        String lowerCaseName = name().toLowerCase();
        // 首字母转大写后拼接剩余小写部分
        return lowerCaseName.substring(0, 1).toUpperCase() + lowerCaseName.substring(1);
    }
}

调用方式:

  • Color.RED.getFormattedName() 返回 Red
  • Color.YELLOW.getFormattedName() 返回 Yellow
  • Color.BLACK.getFormattedName() 返回 Black

注意:获取枚举原始名称请务必用name()方法,不要依赖toString(),toString()可被重写,返回值没有稳定性保证。

方案2:通用工具类(无法修改枚举源码时使用)

如果不能改动原有枚举类的代码,可以写一个通用的静态工具方法,适配所有枚举类型:

public class EnumUtils {
    public static <T extends Enum<T>> String formatToFirstUpper(Enum<T> enumInstance) {
        if (enumInstance == null) {
            return "";
        }
        String lowerName = enumInstance.name().toLowerCase();
        return Character.toUpperCase(lowerName.charAt(0)) + lowerName.substring(1);
    }
}

调用方式:EnumUtils.formatToFirstUpper(Color.BLACK) 即可返回 Black。

多单词枚举值的扩展处理

如果你的枚举成员是下划线分隔的多单词格式(比如DARK_GREEN),可以扩展格式化逻辑,实现每个单词首字母大写,示例:

public String getCamelCaseName() {
    String[] wordParts = name().toLowerCase().split("_");
    StringBuilder result = new StringBuilder();
    for (String part : wordParts) {
        result.append(part.substring(0, 1).toUpperCase())
              .append(part.substring(1));
    }
    return result.toString();
}

该方法处理DARK_GREEN时会返回DarkGreen,如果需要单词间加空格,在拼接时插入空格即可。


内容的提问来源于stack exchange,提问作者Teletubbies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:12:19