У меня есть этот фрагмент кода, где я пытаюсь заменить разделитель тысяч (.) Для кавычки (') следующим шаблоном: ###' ###, ##
import java.text.*;
public class NumberFormatTests
{
public static void main (String[] args)
{
double amount = 100100.543;
NumberFormat nf = new DecimalFormat("###'###.##");
System.out.println( "amount with formatting: " + nf.format(amount) );
}
}
но я получаю эту ошибку:
Исключение в потоке "main" java.lang.IllegalArgumentException: искаженный шаблон "### '###. ##" в java.text.DecimalFormat.applyPattern (DecimalFormat.java:3411) в java.text.DecimalFormat. (DecimalFormat.java:436) в NumberFormatTests.main (NumberFormatTests.java:8)
Я знаю, что это можно изменитьпрограммно с помощью DecimalFormatSymbols примерно так:
import java.text.*;
import java.util.Locale;
public class NumberFormatTests
{
public static void main (String[] args)
{
double amount = 100100.543;
Locale currentLocale = new Locale("de", "DE");
DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);
unusualSymbols.setGroupingSeparator('\'');
NumberFormat nf = new DecimalFormat("###,###.##", unusualSymbols);
System.out.println( "amount with formatting: " + nf.format(amount) );
}
}
, но мне нужно найти способ сделать это в шаблоне, что-то вроде "### '###. ##",Я уже пробовал "### '' ###. ##", но кавычка добавляется как суффикс.
Есть ли способ заменить разделитель тысяч уже внутри шаблона, а не программно?