如何在Java中将String转换为枚举?

Java中Enum类的valueOf()方法接受一个String值,并返回一个指定类型的枚举常量。

示例

让我们创建一个名称为Vehicles的枚举,其中包含5个常量,代表5个不同scoters的模型,其价格为值,如下所示-

enum Vehicles {
   //带值的常量
   ACTIVA125(80000), ACTIVA5G(70000), ACCESS125(75000), VESPA(90000), TVSJUPITER(75000); //Instance variable
   private int price;
   //构造函数初始化实例变量
   Vehicles(int price) {
      this.price = price;
   }
   //静态显示价格的方法
   public int getPrice(){
      return this.price;
   }
}

下面的Java程序从用户接受一个String值,使用valueOf()方法将其转换为Vehicles类型的枚举常量,并显示所选常量的值(价格)。

public class EnumerationExample {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Available scoters: [activa125, activa5g, access125, vespa, tvsjupiter]");
      System.out.println("Enter the name of required scoter: ");
      String name = sc.next();
      Vehicles v = Vehicles.valueOf(name.toUpperCase());
      System.out.println("Price: "+v.getPrice());
   }
}

输出结果

Available scoters: [activa125, activa5g, access125, vespa, tvsjupiter]
Enter the name of required scoter:
activa125
Price: 80000