从字符串中获取枚举的索引?

Pau*_*aul 20 java enums android

我有一个字符串值,我也有一个字符串数组和一个包含该范围的枚举.要获取数组中字符串的索引,请从提供的值中写出:

Arrays.asList(myClass.BAUD_RATES).indexOf(username)
Run Code Online (Sandbox Code Playgroud)

我如何为枚举这样做?我可以使用序数吗?或者我必须制作自己的方法?

方法可能如下:

public enum Fruit {
   ...
   static public boolean isMember(String aName) {
       Fruit[] aFruits = Fruit.values();
       for (Fruit aFruit : aFruits)
           if (aFruit.fruitname.equals(aName))
               return aFruit;
       return false;
   }
   ...
}
Run Code Online (Sandbox Code Playgroud)

Psh*_*emo 84

不确定我是否理解正确,但也许你正在寻找

YourEnum.valueOf("VALUE").ordinal();
Run Code Online (Sandbox Code Playgroud)
  • YourEnum.valueOf("VALUE") 返回带名称的枚举值 "VALUE"
  • 每个枚举值都知道它的位置(从零开始索引),我们可以使用ordinal()方法看到它.


Alb*_*urg 12

我可能不理解你的问题,但同样的代码也适用于枚举:

int index = Arrays.asList(YourEnum.values()).indexOf(YourEnum.ENUM_ITEM);
Run Code Online (Sandbox Code Playgroud)

或者你可以得到:

int index = YourEnum.valueOf("ENUM_ITEM").ordinal();
Run Code Online (Sandbox Code Playgroud)


小智 5

试试这个简单的解决方案:

Fruit.values()[index]
Run Code Online (Sandbox Code Playgroud)