我实现了一个字体系统,它通过char switch语句找到要使用的字母。我的字体图像中只有大写字母。我需要这样做,例如,'a'和'A'都有相同的输出。与其有两倍的大小写,不如像下面这样:
char c;
switch(c){
case 'a' & 'A': /*get the 'A' image*/; break;
case 'b' & 'B': /*get the 'B' image*/; break;
...
case 'z' & 'Z': /*get the 'Z' image*/; break;
}
这在java中可能吗?
6条答案
按热度按时间yftpprvb1#
您可以通过省略
break;
语句来使用switch case fall through。...或者您可以在
switch
ing之前将其规范化为小写或大写。roejwanj2#
在上面,您的意思是OR而不是AND。AND示例:110&011 == 010这两样都不是你要找的。
对于手术室,只有2个病例在第1天没有休息。例如:
oxosxuxt3#
以上都是很好的答案,我只是想补充一点,当有多个字符需要检查时,如果使用if-else可能会更好,因为您可以改为编写以下内容。
当然,如果这变得更复杂,我建议使用正则表达式匹配器。
fcipmucu4#
对一个有趣的
Switch case
陷阱的观测--〉switch
的fall through
“break语句是必需的,因为如果没有它们,switch块中的语句将无法执行:“Java Doc's example
没有
break
的连续case
的代码段:这种情况下的O/P为:
A
但是如果你改变c的值,也就是
char c = 'a';
,那么这就变得有趣了。这种情况下的O/P为:
a A
即使第二个用例测试失败,程序仍继续打印
A
,因为缺少break
,导致switch
将其余代码视为块。匹配用例标签后的所有语句按顺序执行。pvabu6sv5#
根据我对你的问题的理解,在把字符传入switch语句之前,你可以把它转换成小写,所以你不必担心大写,因为它们会自动转换成小写,为此你需要使用下面的函数:
agyaoht76#