首页 > 解决方案 > 在 switch 语句中使用 char 数据

问题描述

我正在尝试获取一个 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 = abc时候values = {0,1,2}。相反,values = {2,2,2}.

标签: javaarrayscharswitch-statement

解决方案


你忘记了break陈述。

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

推荐阅读