Take string and compare to multiple enum types all at once
本问题已经有最佳答案,请猛点这里访问。
我真的需要帮助。
如果我有单独的类,我们称它为filetype.java,它看起来如下:
1 2 3 4 | public enum FileType { JPG,GIF,PNG,BMP,OTHER } |
然后我从用户那里获取一个字符串,称之为inputstring,如何用最少量的代码将"inputstring"与每个枚举值进行比较?
编辑:以下是我的尝试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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; } } |
我很清楚我可以将单个变量设置为与枚举值相同的字符串。我也知道我可以对每个值使用
您可以将输入转换为枚举
1 2 3 4 5 6 7 8 9 | 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; } |