【发布时间】:2014-03-16 07:13:37
【问题描述】:
我真的需要帮助。
如果我有单独的类,我们将其命名为 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()。
【问题讨论】:
-
告诉我们,你尝试了什么。
-
好吧,这是我尝试过的,但目前有缺陷。
-
你为什么不使用
FileType.valueOf(userInput)?如果它抛出IllegalArgumentException,则输入无效,否则它会为您提供枚举值。