我如何显示没有所有信息的枚举

How can i display an enum without all informations

你好,我有一个如下所示的行星 class,我想显示像 MERCURY EARTH 等这样的枚举...没有括号之间的信息,我在括号内使用 CommonName MERCURE , TERRE 搜索并显示 Enum

public  enum Planet {

    MERCURY(0.387,"MERCURE") , VENUS(0.722,"VÉNUS"), EARTH(1.0,"TERRE"), MARS(1.52,"MARS"), JUPITER(5.20,"JUPITER"),
    SATURN(9.58,"SATURNE"),  URANUS(19.2,"URANUS"),  NEPTUNE(30.1,"NEPTUNE");
    private double  distance;
    private String commonName;
    




    
    private Planet(double v, String c) {
        distance = v;
        commonName = c;
    }

    public  double getDistanceFromTheSunInAstronomicalUnit(double distance) {
        return distance;
    }


    public  String getCommonName() {
        return commonName;
    }

    @Override //
    public  String toString() {
        return ""+commonName+ " ("+distance+")";
    }
}

我有这个功能

 Optional <Planet> Dept = Arrays.stream(Planet.values())
                        .filter(e -> e.getCommonName().equals(Dep))
                        .findFirst();

                System.out.println(Dept.get());

我试图显示没有括号之间信息的枚举,并将 CommonName 与输入(部门)进行比较,但问题是每次我得到括号内的信息

有人可以帮帮我吗?

当直接打印枚举值时,如您所见,它会同时打印信息。如果您只想要枚举的名称,例如“MARS”,尝试使用name方法,其中returns一串名字。

示例:System.out.println(Dept.get().name());

试试这个:

Planet Dept = 
Arrays.stream(Planet.values())
.filter(e -> e.getCommonName().equals(Dep))
.findFirst().get();

 System.out.println(Dept);

您可以这样搜索值:

public static void main(String[] args) {
    Optional <Planet> Dept = Arrays.stream(Planet.values())
            .filter(e -> e.name()==Planet.MERCURY.name())
            .findFirst();

    System.out.println(Dept.get());
}

或者像这样:

public static void main(String[] args) {
    String valueYouSearch="MERCURY";
    Optional <Planet> Dept = Arrays.stream(Planet.values())
            .filter(e -> e==Planet.valueOf(valueYouSearch))
            .findFirst();

    System.out.println(Dept.get());
}