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”开发在此之前都不能包含这些字符串。这些都没有说明。