在switch语句中使用char数据

时间:2019-01-05 22:42:41

标签: java arrays char switch-statement

我正在尝试获取case语句,以使用从字符串中提取的char数据将整数添加到整数数组中。

int x = SString.length() - 1;
int[] values = new int[x + 1];
for (int i = 0; i <= x; i++) {
    System.out.println(keyword.charAt(i));
    switch (SString.charAt(i)) {
        case 'a':
            values[i] = 0;
        case 'b':
            values[i] = 1;
        case 'c':
            values[i] = 2;
            System.out.println(values[i]);
    }
}

SString = abcvalues = {0,1,2}时我的预期输出。而是values = {2,2,2}

3 个答案:

答案 0 :(得分:0)

您忘记了break条语句。

switch (SString.charAt(i)) {
case 'a':
    values[i] = 0;
    break;
case 'b':
    values[i] = 1;
    break;
case 'c':
    values[i] = 2;  
    break;
}

答案 1 :(得分:0)

您忘记了每个案例陈述中的中断,因此所有案例都失败了,最终都以values[i] = 2;

结尾
switch(SString.charAt(i)){
  case 'a':
    values[i] = 0;
    break; // this one for each
  case 'b':
    ...

答案 2 :(得分:0)

您忘记了break语句,System.out应该在switch语句之外。

    String SString = "abc";
    int x = SString.length() - 1;
    int[] values = new int[x + 1];
    for (int i = 0; i <= x; i++) {
        switch (SString.charAt(i)) {
            case 'a':
                values[i] = 0;
                break;
            case 'b':
                values[i] = 1;
                break;
            case 'c':
                values[i] = 2;
                break;
            default:
                break;
        }
        System.out.print(values[i] + " ");
    }

输出:0 1 2