Take string and compare to multiple enum types all at once

enums, java

Solution

You can convert input to enum instead

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

Problem

I really need help here. If I have my separate class, lets call it FileType.java, and it looks like this: ``` public enum FileType { JPG,GIF,PNG,BMP,OTHER } ``` and then I grab a string from the user, call it inputString, how can I compare "inputString" to every single enum value, with the most minimal amount of code? EDIT: Here is what I have tried: ``` 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; } } ``` Ps. I am well aware that I can just set individual variables to equal the same strings as the enum values. I;m also aware that I could use `.valueOf()` for every single value.

Original source

Related problems