2015-06-04 69 views
0

我有一个字符表,每个字符的int值都会受到影响。 (我会用这张表来计算一个条形码校验码)。在Java中存储常量

我想将此表存储为常量,请在java中执行此操作的最佳方法是什么? (Enum,Hashmap ...)

任何帮助将不胜感激。

+0

你需要这张表是恒定的还是内容要保持不变? – Aakash

+0

你可以使用公共静态最终变量 –

+4

取决于你打算如何使用它,如果你想通过char查找int值,使用'Map',如果你想通过名称引用常量,使用'Enum'。 –

回答

1

如果字母和代码之间的映射与您自己的答案中一样,那么您不需要表格。你可以用简单的翻译方法做到这一点:

public static int letterToCode(char letter) { 
    if (letter >= '0' && letter <= '9') { 
     return letter - '0'; 
    } else if (letter >= 'A' && letter <= 'Z') { 
     return letter - 'A' + 10; 
    } else { 
     throw new IllegalArgumentException("Invalid letter: " + letter); 
    } 
} 

public static char codeToLetter(int code) { 
    if (code >= 0 && code <= 9) { 
     return (char) ('0' + code); 
    } else if (code >= 10 && code <= 35) { 
     return (char) ('A' + code - 10); 
    } else { 
     throw new IllegalArgumentException("Invalid code: " + code); 
    } 
} 

这不会比在地图上查找代码或字母更糟糕。

1

您必须使用public static final DATA_TYPE VAR_NAME;才能正常工作。最终导致变量不被操纵,但是你需要静态变量,因为如果你不这样做,它会给你和错误。