打开以数字开头的双字符串

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)

谢谢,罗伯特.

Ste*_*n C 8

在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... 的性能优势,除非您有大量不同的情况.