Rob*_*ert 2 java string enums switch-statement
我正在尝试编写一段代码,该代码采用两位十六进制数字,例如"0C",并将其与列表进行比较.
我正在使用Java 6,因此无法打开字符串,并且最初计划在Enums上使用开关,但没有意识到Enums必须以字母开头.
是否有一种简单的方法来实现类似下面的内容而没有一系列"if,else if ..."语句?:
public void code(String oc) {
switch (oc) {
case 00:
// do something
break;
case 0A:
// do something else
break;
case A1:
....
}
Run Code Online (Sandbox Code Playgroud)
谢谢,罗伯特.
在Java 6中,不可能直接执行此操作.您必须将字符串值转换为数字(以某种方式),然后打开数字.例如:
switch (Integer.parseInt(oc, 16)) {
case 0x00:
// do something
break;
case 0x0A:
// do something else
break;
case 0xA1:
....
}
Run Code Online (Sandbox Code Playgroud)
字符串到数字转换相对昂贵,并且可能否定使用switch... 的性能优势,除非您有大量不同的情况.