写练习时偶然发现System.out.println(001)在控制台输出为“1”,并不是预想中的“001”。
查阅资料后发现:“001”属于Strin类型,所以用int类型打印出的结果为:“1”。解决方法有以下几种:
一、用“printf”格式化输出
具体代码如下:
System.out.printf("%03d",1);
注意:是“printf”,不是“println”,另外“printf”不具有换行功能
printf是Java SE5推出了C语言printf()风格的格式化输出功能,具体用法站里有大佬详解,这里主要讨论如何输出“001”。
1、%03d中的%d
上面代码中的“%d”为占位符就是“,”后面的“1”占位,打印时会将“1”放在“%d”的位置,例如
System.out.printf("你好,%s",张三); // 输出 "你好,张三"
注意:输出不同的数据类型需要不同的占位符
%d输出十进制整数
%s输出字符串
2、%03d中的03
这里的“3”表示最少输出3位数,“0”表示用0填充,所以printf("%03d",1)就是001。这里填充的数只会在被填充数前面。
二、用String类型输出
直接
System.out.println("001");