java格式化输出问题

img


请问一下这$和$前面的数字是什么意思,总场宽又是啥意思 ,或者全都解释一下下,万分感谢

$前面的数字表示第几个参数
如果不加,那么默认跟后面传递的参数顺序一致,一一对应
但是显然,第一个参数是个字符串,不是E,那顺序全乱了
所以你看答案,第一个数字分别是3,2,1,4,这就跟后面传入的4个参数对上了
如果后续格式化字符串里面有".",那$符号可省略不写,如果没有点,那么必须写,否则跟别的数字混一起了
至于总场宽,其实就是打印出来一共占据几个字符那么宽的意思,不足用空格补齐
注意前面针对数字、字符串和字符提了3个不同的要求,并不是三个要求要同时作用于所有的数据