获取字符串并同时与多个枚举类型进行比较

Chi*_*isx 7 java enums

我真的需要帮助.

如果我有我的单独类,我们称之为FileType.java,它看起来像这样:

 public enum FileType
 {
     JPG,GIF,PNG,BMP,OTHER
 }
Run Code Online (Sandbox Code Playgroud)

然后我抓住一个字符串从用户,把它inputString,我怎么可以比较"inputString"到每一个枚举值,最最少的代码量?

编辑:这是我尝试过的:

    System.out.print("Please enter your photo's file type. It must be: JPG, GIF, PNG, BMP, or OTHER");
    typeInput = kb.nextLine();

    boolean inputMatches = false;

    while(inputMatches == false)
    {
        System.out.print("Invalid input. Please enter your photo's file type. It must be: JPG, GIF, PNG, BMP, or OTHER");

        if(typeInput.equalsIgnoreCase(FileType.values()))
        {
            inputMatches = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

PS.我很清楚我可以将单个变量设置为与枚举值相同的字符串.我也知道我可以.valueOf()用于每一个值.

xyz*_*xyz 6

您可以将输入转换为枚举

System.out.print("Please enter your photo's file type. It must be: JPG, GIF, PNG, BMP, or OTHER");
boolean typeInput = kb.nextLine();

inputMatches = true;
try{
    FileType fileType = FileType.valueOf(inputString.toUpperCase().trim());
}catch (IllegalArgumentException e) {
    inputMatches = false;
}     
Run Code Online (Sandbox Code Playgroud)