2015-06-04 67 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;才能正常工作。最終導致變量不被操縱,但是你需要靜態變量,因爲如果你不這樣做,它會給你和錯誤。