所以使用我的基本代码我很好奇是否可以使用如下所示的if语句:
if (ScannerInput.equalsIgnoreCase(AllEnums)){
System.out.println("Sample");
}
如果您理解我希望只有Enum的名称,例如它对所有值都是真的。如果可以,我该怎么做呢?
这是我的意思的一个例子:
import java.util.Scanner;
public class EnumTest {
enum Weather {Sunny, Rainy, Snowy, Overcast, Stormy};
public static void main (String[] args) {
Scanner scan = new scanner(System.in);
String userinput = nextLine;
if (userinput.equalsIgnoreCase(Weather.all) // I wish for this to occur if any of the Weather enums are entered.
System.out.println ("Working!");
}
}
}
答案 0 :(得分:0)
嗯,我想我有点困惑,也许尝试这样的事情?
for(Test t:Test.values()){
if(ScannerInput.equals(t)){
System.out.println("Sample");
}
}
答案 1 :(得分:0)
enum Color { RED, GREEN, BLUE }
String input = ...
try {
Color c = Color.valueOf(input.trim().replace(' ', '_').toUpperCase());
...
} catch (IllegalArgumentException e) {
...
}
在你的情况下,你需要像apache commons这样的StringUtils.capitalize
。或者使用大写只有枚举常量的约定。 (在java.awt.Color的情况下,他们无法决定并且也有所有小写字母版本。)
答案 2 :(得分:0)
您可以向enum-class
添加一个检查值是否在该枚举中的方法:
public boolean contains(String s) {
for (YourEnum yourEnum : values()) {
return yourEnum.toString().equalsIgnoreCase(s);
}
return false;
}
这需要近乎完美的匹配,考虑到有人在控制台(或类似的)上输入值,这是不可靠的。