我真的需要帮助.
如果我有我的单独类,我们称之为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()用于每一个值.
您可以将输入转换为枚举
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)