我有一个变量说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;
}