是否有一个简单的格式化程序来格式化我的String?
所以我的字符串是:300000我想要“300 000”空格
or 1000000 "1 000 000"
莱斯利
答案 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)
您不能使用简单的格式字符串,但使用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));
答案 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);
}