Java Currency Formatter

  • + 93 comments

    Java solution - passes 100% of test cases

    The tricky part is creating a custom local for India. I had to look up India's country code in the IANA Language Subtag Registry. If anyone had an easier way to find it please let me know.

    import java.util.Scanner;
    import java.text.NumberFormat;
    import java.util.Locale;
    
    public class Solution {
        
        public static void main(String[] args) {
            /* Read input */
            Scanner scanner = new Scanner(System.in);
            double payment = scanner.nextDouble();
            scanner.close();
    
            /* Create custom Locale for India. 
              I used the "IANA Language Subtag Registry" to find India's country code */
            Locale indiaLocale = new Locale("en", "IN");
    
            /* Create NumberFormats using Locales */
            NumberFormat us     = NumberFormat.getCurrencyInstance(Locale.US);
            NumberFormat india  = NumberFormat.getCurrencyInstance(indiaLocale);
            NumberFormat china  = NumberFormat.getCurrencyInstance(Locale.CHINA);
            NumberFormat france = NumberFormat.getCurrencyInstance(Locale.FRANCE);
    
            /* Print output */        
            System.out.println("US: "     + us.format(payment));
            System.out.println("India: "  + india.format(payment));
            System.out.println("China: "  + china.format(payment));
            System.out.println("France: " + france.format(payment));
        }
    }
    

    From my HackerRank Java solutions.