所谓数字格式化,就是按指定格式得到一个字符串
例子1:3.1415926最多保留2位小数点,格式化后应该为3.14
例子2:12345678按“千”分组,格式化后应该为12,345,678
例子3:3.1423212小数保留3位数,整数至少显示3位数,格式化后应该为003.142
8.7.1 Formatter类
1.格式化模式(查阅Java API中的Java.util.Formatter类,了解更多格式符)
format 方法中的“格式化模式”是一个用双引号括起来的字符序列(字符串),该字符序列中的字符由格式和普通字符所构成。
String string=String.format("%.2f", 3.1432);
//s=3.14
2.值列表
format 方法中的“值列表”是用逗号分隔的变量、常量或者表达式。要保证format方法中“格式化模式”中的格式符的个数与“值列表”中的个数相同
String string1=String.format("%d元%.3f公斤%d台",888,999.8852222228,234);
System.out.println(string1);
//string1=888元999.885公斤234台
3.格式化顺序
format 方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式化“值列表”中对应的值,而“格式化模式”中的普通字符保留原样
String string2=String.format("从左到右:%d,%.3f,%d",100,200.00,300);
System.out.println(string2);
//string2=从左到右:100,200.000,300
如果不希望使用默认的顺序(从左到右)进行格式化,可以在格式符前面添加索引号:index$,(1$表示第一个,2$表示第二个···)
String string2=String.format("从左到右:%3$d,%1$d,%2$d",100,200,300);
System.out.println(string2);
//string2=从左到右:300,100,200
格式化包含普通的“%”,需连续写两个%:
String string2=String.format("从左到右:%3$d%%,%1$d,%2$d",100,200,300);
//string2=从左到右:300%,100,200