【发布时间】:2020-06-09 09:09:20
【问题描述】:
这里我想知道如何将数组值等同于枚举值,而不考虑大小写。
enum Color{ RED, BLACK, WHITE, PINK}
public static void main{
Scanner keyboard = new Scanner(System.in);
String input = keyboard next Line();
String[] array = input.split(" ");
for(int i=0; i<=array.length; i++){
if("How to equate the array values to the enum values irrespective to the lowercase and upper case")
{
System.out.print(array[i] + "is in the enum values");
}
}
}
用户输入:
orange red purple
输出应该是:
red is in the enum values
【问题讨论】:
-
if (array[i].equalsIgnoreCase(Color.RED.toString()))这样的东西怎么样?作为替代方案,您可以通过特定的String值扩展enum,但它不会保持单线... -
@deHaar 我会建议
name()而不是toString(),但它有效 -
@f1sh 谢谢,最好使用
name(),对... -
@f1sh from Enum::name javadocs:大多数程序员应该优先使用 toString() 方法,因为 toString 方法可能会返回一个对用户更友好的名称。
-
@Mr.Robot 是的,但这正是这里的问题。您不想将
"RED"与“更用户友好的名称”或任何可能被覆盖的toString()返回进行比较,但您想将其与枚举常量名称进行比较,这正是name()返回的内容。