基本上,我想使用switch语句。我有一个用户将输入的每个编码字符的图表。但是,每个大写字符和小写字符具有相同的含义。我发现没有必要复制每个switch语句并修改相同的东西。那么我怎么会这样呢?
答案 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都是一个有用的结构,可以了解。