我有一个变量说private int minutes = 00
。
如果我这样做System.out.println(minutes)
,Java 将打印0
而不是00
,这是值。它正在删除最后一个零,但在这个特定示例中,我希望它打印00
. 怎么做?
我还尝试将分钟作为字符串,然后执行:Integer.parseInt(minutes)
然后打印。但结果是一样的。
我有一个变量说private int minutes = 00
。
如果我这样做System.out.println(minutes)
,Java 将打印0
而不是00
,这是值。它正在删除最后一个零,但在这个特定示例中,我希望它打印00
. 怎么做?
我还尝试将分钟作为字符串,然后执行:Integer.parseInt(minutes)
然后打印。但结果是一样的。
您可以使用printf()
:
int n = 00;
System.out.printf("%02d%n", n);
00
但要小心在 int 文字前面加上 a 0
,因为这会使它们变成八进制(参见JLS §3.10.1)。
例如,
int n = 010;
System.out.printf("%02d%n", n);
08
您可以使用以下格式打印:
System.out.printf("%02d%n", minutes);
解释:
%02d
指定$d
宽度为 2 和 0 填充标志的整数转换 ( ) 。%n
指定行终止符(模仿添加的新行println
)如果您想转换minutes
为String
在程序中使用(而不是打印),您可以使用String.format
相同的效果:
int minutes = 0;
String sMinutes = String.format("%02d", minutes);
更多信息可以在有关语法的文档Formatter
中找到。
您可以执行以下操作 -
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));
你可以试试这个方法,我在大学学过
private static String formate(int valor) {
return (valor < 10 ? "0" : "") + valor;
}