我有一个变量private int minutes = 00
。
如果我执行System.out.println(minutes)
,Java将打印0
而不是00
,这是值。它正在删除最后一个零,但在这个特定示例中,我希望它打印00
。怎么做?
我还尝试将分钟作为字符串,并执行:Integer.parseInt(minutes)
然后打印它。但结果是一样的。
答案 0 :(得分:9)
您可以使用printf()
:
int n = 00;
System.out.printf("%02d%n", n);
00
但是要小心使用0
添加文字,因为这会使它们成为octal(参见JLS §3.10.1)。
例如,
int n = 010;
System.out.printf("%02d%n", n);
08
答案 1 :(得分:6)
您可以使用以下格式进行打印:
System.out.printf("%02d%n", minutes);
说明:
%02d
指定宽度为2且填充标记为0的整数转换($d
)。%n
指定行终止符(模仿println
添加的新行)如果您想将minutes
转换为String
以便在程序中使用(而不是打印),您可以使用String.format
来达到同样的效果:
int minutes = 0;
String sMinutes = String.format("%02d", minutes);
更多信息可在docs on Formatter
syntax。
答案 2 :(得分:5)
您可以执行以下操作 -
private int minutes = 0
DecimalFormat formatter = new DecimalFormat("00");
String aFormatString = formatter.format(minutes);
System.out.println(aFormatString);
只需保存一些行 - System.out.println(new DecimalFormat("00").format(minutes));
答案 3 :(得分:0)
您可以尝试这种方法,我已经在大学里学过了
private static String formate(int valor) {
return (valor < 10 ? "0" : "") + valor;
}