我真的需要帮助。
如果我有单独的类,我们称之为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()
。
答案 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;
}