Auf der Welt existieren eine Reihe von Konventionen rund um das Thema Formatierung von Zahlen und anderen Werten. So existieren z.B. unterschiedlichste Reglungen für Dezimaltrennzeichen. Unter Java lassen sich diese dank der entsprechenden Unterstützung problemlos einbinden. So können Werte anhand der Locale, welche eine definierte Region repräsentiert, einfach formatiert werden:
double value = 42.2324;
String format = "#.00";
DecimalFormat decimalFormat = new DecimalFormat(format, DecimalFormatSymbols.getInstance(Locale.GERMANY));
String formattedString = decimalFormat.format(value);
System.out.println(formattedString);
In diesem Beispiel wird der Wert 42.2324 anhand der Locale und einer Formatierung in den Wert 42,23 konvertiert. Manchmal ist es allerdings notwendig Informationen über die einzelnen Trennzeichen und ähnliches zu erlangen. Auch diese Informationen können unter Java ermittelt werden:
Locale locale = new Locale("en", "GB");
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale);
char decimalSeparator = format.getDecimalFormatSymbols().getDecimalSeparator();
char groupingSeparator = format.getDecimalFormatSymbols().getGroupingSeparator();
Currency currency = format.getDecimalFormatSymbols().getCurrency();
Hier wird eine Locale angelegt und mit dieser eine Instanz der Klasse DecimalFormat erzeugt. Anschließend kann diese Instanz genutzt werden, um die regionsspezifischen Zeichen wie z.B. den Dezimalseparator zu ermitteln.