Saltar al contenido

convertir el código de moneda numérico iso 4217 a nombre de moneda

Si encuentras algún detalle que no comprendes puedes dejarnos un comentario y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

java.util.Currency.getInstance admite solo moneda ISO 4217 codigos, no números de moneda. Sin embargo, puede recuperar todas las monedas utilizando el getAvailableCurrencies y luego busque el que tiene el código 840 comparando el resultado del getNumericCode método.

Me gusta esto:

public static Currency getCurrencyInstance(int numericCode) 
    Set currencies = Currency.getAvailableCurrencies();
    for (Currency currency : currencies) 
        if (currency.getNumericCode() == numericCode) 
            return currency;
        
    
    throw new IllegalArgumentException("Currency with numeric code "  + numericCode + " not found");

Con Java 8:

Optional currency = Currency.getAvailableCurrencies().stream().filter(c -> c.getNumericCode() == 840).findAny();

Una mejor manera de hacerlo:

public class CurrencyHelper 

    private static Map currencies = new HashMap<>();

    static 
        Set set = Currency.getAvailableCurrencies();
        for (Currency currency : set) 
             currencies.put(currency.getNumericCode(), currency);
        
    

    public static Currency getInstance(Integer code) 
        return currencies.get(code);
    

Con un poco de trabajo, el caché se puede hacer más eficiente. Eche un vistazo al código fuente de la clase Moneda para obtener más información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *