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

时间:2014-02-17 05:35:39

标签: java enums

我真的需要帮助。

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

 public enum FileType
 {
     JPG,GIF,PNG,BMP,OTHER
 }

然后我从用户那里获取一个字符串,称之为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;
        }
    }

聚苯乙烯。我很清楚我可以将单个变量设置为与枚举值相同的字符串。我也知道我可以为每个值使用.valueOf()

1 个答案:

答案 0 :(得分:4)

您可以将输入转换为枚举

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;
}