【问题标题】:Display numbers with leading zeros (0) in Java? [duplicate]在Java中显示带有前导零(0)的数字? [复制]
【发布时间】:2012-04-01 04:08:52
【问题描述】:

可能重复:
Add leading zeroes to number in Java?

假设我必须添加两个整数,一个是 0001,另一个是 0002。如果我在 java 中添加它,那么我会得到 3,但我想要 0003。我是否必须创建一个循环来映射出零或者是否存在更简单的方法。

【问题讨论】:

  • 整数00010002如何相加?
  • 是的,Hovercraft 所说的——你有两个整数 1 和 2。在某些情况下它们可能表示为 0001 和 0002 的事实与它们的实际值无关。
  • 小心! 00010002 在 Java 中被解释为八进制数,因为它以 0 开头,所以 010 实际上是 8 而不是 10

标签: java int


【解决方案1】:

不要将数字与数字的字符串表示混淆。您的问题围绕后者 - 如何将数字表示为带有前导零的字符串,并且有几种可能的解决方案,包括使用 DecimalFormat 对象或 String.format(...)。

即,

  int myInt = 5;
  String myStringRepOfInt = String.format("%05d", myInt);
  System.out.println("Using String.format: " + myStringRepOfInt);

  DecimalFormat decimalFormat = new DecimalFormat("00000");
  System.out.println("Using DecimalFormat: " + decimalFormat.format(myInt));

【讨论】:

  • 但是我该如何添加它们
  • @Tom:请澄清——添加什么?你需要展示你的代码和更多关于你卡在哪里的信息才能让你的问题得到回答。
【解决方案2】:

你可以在得到结果后添加一个带有零的左填充。

String.format("%05d", result);

用于长度为 5 的零填充。

EDIT:我删除了之前的EDIT,完全错了:@

【讨论】:

  • 您的编辑完全错误,实际上您原始答案中的代码解决了您的编辑混乱的问题。请运行一个小程序向自己证明是这样的。抱歉,在您修复此错误之前,我必须给您投 -1 票。
【解决方案3】:

这对你有帮助

String.format (http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax)

在您的情况下,它将是: String.format("%03d", num) - 0 - 用零填充,3 - 将宽度设置为 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    相关资源
    最近更新 更多