Класс java.util.Currency реализует это начиная с Java 1.7.
Currency curr = Currency.getInstance("AZM");
System.out.println(curr.getCurrencyCode()); // AZM
System.out.println(curr.getNumericCode()); // 31
System.out.println(curr.getDisplayName()); // Azerbaijani Manat (1993-2006)
К сожалению, этот класс все еще далек от юзабилити ... например отсутствует конструктор из numericCode, некоторые отображения displayNames не являются событиями DisplayName, ...