Android字符串格式 - 价格

时间:2011-07-14 08:24:41

标签: android

是否有一个简单的格式化程序来格式化我的String?

所以我的字符串是:300000我想要“300 000”空格

or 1000000 "1 000 000"

莱斯利

5 个答案:

答案 0 :(得分:31)

这样做:

String s = (String.format("%,d", 1000000)).replace(',', ' ');

答案 1 :(得分:15)

使用Formatter类格式化字符串

format("%,d", 1024);

之后用空格替换。

http://developer.android.com/reference/java/util/Formatter.html

答案 2 :(得分:10)

您不能使用简单的格式字符串,但使用DecimalFormatDecimalFormatSymbols类。

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));

答案 3 :(得分:8)

double yourPrice = 1999999.99;
String formattedPrice = new DecimalFormat("##,##0.00€").format(yourPrice);

输出:

formattedPrice = 1.999.99,99€

答案 4 :(得分:0)

如果你有整数值,我认为最优雅

public static String formatNumberWithSpaces(long number) {
    DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance();
    DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
    symbols.setGroupingSeparator(' ');
    return formatter.format(number);
}