package javacodebook.core.formatnumber;

import java.text.*;
import java.util.Locale;

/**
 * @author Mark Donnermeyer
 */
public class Starter {
    
    public static void main(String []args) throws Exception
    {
        double number = 1000000.50;
        String pattern = "'0' < ###,###,###.##";
        DecimalFormat df = new DecimalFormat(pattern);
        System.out.println(df.format(number));
        
        pattern = "'Zahl ist' ''###,###,###.00''";
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setGroupingSeparator('/');
        symbols.setDecimalSeparator('!');
        df = new DecimalFormat(pattern, symbols);
        System.out.println(df.format(number));
        
        String numberStr = "1.000.000,00";
        pattern = "###,###,###.##";
        df = new DecimalFormat(pattern);
        System.out.println(df.parse(numberStr));

        // Umwandlung von Zahlen in Strings über Standard-Formatter
        NumberFormat nf = NumberFormat.getInstance();
        System.out.println(nf.format(number));
        nf = NumberFormat.getCurrencyInstance();
        System.out.println(nf.format(number));
        nf = NumberFormat.getIntegerInstance();
        System.out.println(nf.format(number));
        nf = NumberFormat.getNumberInstance();
        System.out.println(nf.format(number));
        nf = NumberFormat.getPercentInstance();
        System.out.println(nf.format(number));

        // Erhalten eines Formatters ohne und mit Angabe einer Locale
        nf = NumberFormat.getCurrencyInstance();
        System.out.println(nf.format(number));
        nf = NumberFormat.getCurrencyInstance(Locale.UK);
        System.out.println(nf.format(number));
        
    }
}
