Java - 如何在switch语句中使用char数组?

时间:2017-06-24 06:29:10

标签: java arrays

可以在switch语句中使用字符数组,如下所示吗?当我尝试这个时,它显示一个错误,即char无法转换为int,即不兼容的类型。

char[] valuetoo = { 'b', 'a', 'c', 'd', 'e'};

switch (valuetoo){
    case 'a':
        System.out.println("the character found is 'a'");
        break;
    case 'b':
        System.out.println("the character found is 'b'");
        break;
    case 'c':
    case 'd':
    case 'e':
        System.out.println("the character found is ");
        break;
    default:
        System.out.println("the characters are not found");
}

错误是:

Error:(39, 16) java: incompatible types: char[] cannot be converted to int

3 个答案:

答案 0 :(得分:2)

您在switch子句中提供了char数组。你不能。

The Java language(14.11. The switch Statement)仅允许这些类型作为switch语句的表达式:

  

Expression 的类型必须是char, byte, short, int, Character, Byte, Short, Integer, String,enum类型(§8.9),或者   发生编译时错误。

您应该提供要应用char语句的实际switch-case
现在,如果你想对char数组的所有元素应用switch-case语句,你可以使用数组的元素遍历switch

char[] valuetoo = { 'b', 'a', 'c', 'd', 'e'};      
for (char c : valuetoo){
     switch (c){
        case 'a':
            System.out.println("the character found is 'a'");
            break;
        case 'b':
            System.out.println("the character found is 'b'");
            break;
        case 'c':case 'd':case 'e':
            System.out.println("the character found is ");
            break;
        default:
            System.out.println("the characters are not found");
      }
  }

答案 1 :(得分:0)

您无法将数组名称传递给开关案例但您可以将数组索引传递给下面的

 switch (valuetoo[0]){
        //body here
        }

答案 2 :(得分:-2)

你不应该在开关

中使用char数组

最好添加switch(valuetoo[index])