我将如何比较两个将转换为相同角色的角色?

时间:2016-10-27 12:07:25

标签: java character-encoding switch-statement

基本上,我想使用switch语句。我有一个用户将输入的每个编码字符的图表。但是,每个大写字符和小写字符具有相同的含义。我发现没有必要复制每个switch语句并修改相同的东西。那么我怎么会这样呢?

2 个答案:

答案 0 :(得分:3)

您可以使用toUpperCase功能:

  

使用UnicodeData文件中的案例映射信息将字符参数转换为大写。

switch (Character.toUpperCase(character)) {
    case 'A':
        // code ...
        break;
    case 'B':
        // code ...
        break;
    ...
    default:
        // default code
}

答案 1 :(得分:2)

您可以使用switch的堕落。所以有些东西:

switch (character) {
case 'a': // fall through to next case
case 'A':
    // code ...
    break;
case 'b': // fall through to next case
case 'B':
    // code ...
    break;
...
default:
    // default code
}

这里发生了什么,因为switch一旦找到匹配的case就继续执行代码,直到它遇到break;,如果你的角色是& #39; a',由于没有break;,该程序将继续使用case中的代码行进行' A'。对于' b',' c'等等

在这种情况下,我绝对同意使用Character.toUpperCase()更合适。如果需求发生变化,小写字符不再与大写字母相同,那么在此处使用fall-through只会有所帮助。在任何情况下,fall-through does have its uses都是一个有用的结构,可以了解。