Ответ 1
Использовать класс Formatter для форматирования строки
format("%,d", 1024);
После этого замените его пробелом.
http://developer.android.com/reference/java/util/Formatter.html
Есть ли простой форматтер для форматирования моей строки в качестве цены?
Итак, моя строка: 300000 я бы хотел "300 000" с пространством
or 1000000 "1 000 000"
Лесли
Использовать класс Formatter для форматирования строки
format("%,d", 1024);
После этого замените его пробелом.
http://developer.android.com/reference/java/util/Formatter.html
Это делает:
String s = (String.format("%,d", 1000000)).replace(',', ' ');
Вы не можете сделать это с помощью простой строки формата, но с классами DecimalFormat
и DecimalFormatSymbols
.
int value = 123456789;
DecimalFormat fmt = new DecimalFormat();
DecimalFormatSymbols fmts = new DecimalFormatSymbols();
fmts.setGroupingSeparator(' ');
fmt.setGroupingSize(3);
fmt.setGroupingUsed(true);
fmt.setDecimalFormatSymbols(fmts);
TextView txt = (TextView) findViewById(R.id.txt);
txt.setText(fmt.format(value));
В этих классах есть много и много других опций. Например, вы можете разделять числа точками или запятыми или использовать специфичные для локали настройки.
Например, вы можете использовать метод fmt.setCurrency
:
fmt.setCurrency(Currency.getInstance(Locale.GERMANY));
double yourPrice = 1999999.99;
String formattedPrice = new DecimalFormat("##,##0.00€").format(yourPrice);
вывод:
formattedPrice = 1.999.99,99 €