我的ide将以下方法标记为具有太高的圈复杂度。我的学校要求我消除ide在代码中可能出现的所有警告,所以我想知道在这种情况下是否有一种简单的方法可以做到这一点。
对于上下文,代码应该选择一个游戏板上的哪一列字段,其中的列标记为a到o,一个给定的字符代表哪一列字段。
public int getColumn(final char c) {
switch (c) {
case 'A':
return 0;
case 'B':
return 1;
case 'C':
return 2;
case 'D':
return 3;
case 'E':
return 4;
case 'F':
return 5;
case 'G':
return 6;
case 'H':
return 7;
case 'I':
return 8;
case 'J':
return 9;
case 'K':
return 10;
case 'L':
return 11;
case 'M':
return 12;
case 'N':
return 13;
case 'O':
return 14;
default:
return -1;
}
}```
4条答案
按热度按时间s5a0g9ez1#
可以使用Map:
或者,如果您只想获取大写字母在字母表中的位置,请使用以下命令:
fafcakar2#
我不确定这是否适用于您的上下文,但为什么不直接使用ascii字符表呢?
你可以把它转换成一个整数,因为大写的字符是索引65,你可以从中减去65。
例如:
bz4sfanl3#
使用hashmap将字符存储为键,将数字存储为值。
参考https://www.w3schools.com/java/java_hashmap.asp 使用hashmap
jhdbpxl94#
或者滥用字符表示为数字的事实: