3

我有一个变量说private int minutes = 00

如果我这样做System.out.println(minutes),Java 将打印0而不是00,这是值。它正在删除最后一个零,但在这个特定示例中,我希望它打印00. 怎么做?

我还尝试将分钟作为字符串,然后执行:Integer.parseInt(minutes)然后打印。但结果是一样的。

4

4 回答 4

10

您可以使用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
于 2013-11-12T15:44:01.703 回答
8

您可以使用以下格式打印:

System.out.printf("%02d%n", minutes);

解释:

  • %02d指定$d宽度为 2 和 0 填充标志的整数转换 ( ) 。
  • %n指定行终止符(模仿添加的新行println

如果您想转换minutesString在程序中使用(而不是打印),您可以使用String.format相同的效果:

int minutes = 0;
String sMinutes = String.format("%02d", minutes);

更多信息可以在有关语法的文档Formatter中找到。

于 2013-11-12T15:43:52.753 回答
6

您可以执行以下操作 -

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));

于 2013-11-12T15:47:31.133 回答
0

你可以试试这个方法,我在大学学过

private static String formate(int valor) {
    return (valor < 10 ? "0" : "") + valor;
}
于 2019-05-30T22:49:43.510 回答