【问题标题】:Printing integers starting with 0's - java [duplicate]打印以0开头的整数-java [重复]
【发布时间】:2014-02-20 21:52:40
【问题描述】:

问题是我不明白如何让两个 0 出现在 7 之前,在打印之后。在打印行中使用 + 键后,打印不断出现 7。

int 键 = 007; System.out.println("插入任何你想要的" + 键); 插入任何你想要的 7

我想说的是

插入你想要的任何东西 007

【问题讨论】:

标签: java variables integer


【解决方案1】:
System.out.println(String.format("%02d", Bond));

【讨论】:

    【解决方案2】:

    因为它是一个int,它会从数字的开头剪掉0。这是因为007 在数值上等于7。请改用String

    String bond = "007";
    
    System.out.println("Insert whatever you want " + bond);
    

    或者,如果您必须使用int,那么您可以使用format 方法:

    System.out.println("Insert whatever you want" + String.format("%02d", bond));
    

    编辑

    在 cmets 中提出了很好的观点。 007 将被解释为octal 数字,这意味着007 实际上将被解释为042。特工 042 是嫉妒的间谍,他总是试图完成007 能做的事情,但从来没有成功过。我们不希望他拿走 007 的任何荣耀。

    【讨论】:

    • (此外,Java 实际上将一个以零开头的数字整数文字视为八进制。代理 042 - 042 != 42 - 当他试图兑现薪水时会有一个令人讨厌的惊喜!)
    【解决方案3】:

    你可以像这样使用System.out.printf()

    public static void main(String[] args) {
        System.out.printf("%03d - %s, %s.\n", 7, "Bond", "James Bond");
    }
    

    输出,

    007 - Bond, James Bond.
    

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2016-10-13
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多