Java 在Android中,如何在开关情况下使用字符串[]输入?
如何在开关情况下使用字符串数组的输入Java 在Android中,如何在开关情况下使用字符串[]输入?,java,switch-statement,arrays,Java,Switch Statement,Arrays,如何在开关情况下使用字符串数组的输入 String[] mon=new String[]{"January","February","March","April","May","June","July","August","September","October","November","December"}; switch (mon) { case "January": m=1; break; case "February":
String[] mon=new String[]{"January","February","March","April","May","June","July","August","September","October","November","December"};
switch (mon)
{
case "January":
m=1;
break;
case "February":
m=1;
break;
}
Java(版本7之前)不支持开关中的字符串。但是,您可以通过使用enum
实现所需的结果
private enum Mon {
January,February,March,April,May,June,July,August,September,October,November,December
};
String value; // assume input
Mon mon = Mon.valueOf(value); // surround with try/catch
switch(mon) {
case January:
m=1;
break;
case February:
m2;
break;
// etc...
}
有关更多信息,请参见您不能在switch语句中使用数组(Java 7之前)。如果您使用Java6进行Android开发,那么也不能打开字符串。最好对月份使用枚举,然后打开枚举 自JDK 7以来,您可以在开关中使用字符串。但是不是字符串数组
在代码中,您试图将整个数组放入交换机。
试试这个:
String[] mon=new String[]{"January","February","March","April","May","June","July","August","September","October","November","December"};
String thisMonth = mon[5];
switch (thisMonth)
{
case "January":
m=1;
break;
case "February":
m=2;
break;
...
case "June":
m=6;
break;
}
不能在switch语句中使用数组。您所说的似乎不符合逻辑。用所有这些值初始化数组,然后“切换”它们?你在“一月”和“二月”都有相同的陈述??想想看……数组有所有这些值;那么切换是什么呢???你怎么能检查switch中的数组对象?这里的水果是什么-开关(水果)
?你可能写了一个很好的答案,但是水果
变量从何而来?有趣的是,我认为水果
是一种故意分散注意力的东西。@11684我之前也有类似的问题,水果在我的代码中,开关中的字符串直到7才出现,所以任何“Java”开发在此之前都不能包含这些字符串。这些都没有说明。