【问题标题】:Get a 01 from an int instead of 1 in a for loop [duplicate]从 int 获取 01 而不是 for 循环中的 1 [重复]
【发布时间】:2013-08-21 15:16:06
【问题描述】:

此循环插入员工 ID,例如 1、2、4、.. 30。

for(int i=01;i<31;i++){
  Employee e = new Employee();
  e.setEmpId(i);
  aList.add(e);
}

但是,我需要格式为 01、02、03 .. 的 ID。 有没有一种简单的方法可以实现这一目标?

【问题讨论】:

  • 为什么投反对票?关心评论
  • 我没有投反对票,但我确实花了 20 秒的时间来谷歌搜索并找到解决方案。我怀疑这起了作用。
  • 当然。我懂了。它是重复的。

标签: java for-loop formatting integer


【解决方案1】:

int 没有格式。他们是数字。字符串有格式。您可以使用 NumberFormat 或 DecimalFormat 格式化数字。

【讨论】:

  • 感谢您的洞察力。我想知道我还能如何传达我希望整数格式与我得到的不同。
【解决方案2】:

这更多是格式问题。如果 id 是数字,Empolyee.toString() 或一些类似的函数可以根据需要格式化 id。

String.format("%02d", id);

将为您将 id 填充到 2 个位置

【讨论】:

    【解决方案3】:

    整数将始终保存为“1”。如果你想将它显示为“01”,那么你可以使用类似这样的东西

    public static void main(String[] args) {
        int i = 2;
        DecimalFormat twodigits = new DecimalFormat("00");
        System.out.println(twodigits.format(i));
    }
    

    输出:

    02
    

    【讨论】:

    • "00" 就足够了。
    • @Marcelo:你说得对,我已经做了相应的修改。
    【解决方案4】:

    您可以使用十进制格式

    Add leading zeroes to number in Java?

    【讨论】:

      【解决方案5】:

      使用 String 代替 int。

      String istr = "";
      for(int i=01;i<31;i++){
        Employee e = new Employee();
        if( i<10 )
          istr = "0" + i;
        else
          istr = "" + i;
      
        e.setEmpId(istr);
        aList.add(e);
      }
      

      当然你需要有setEmpId(String s) 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-31
        • 2013-01-16
        • 2019-10-28
        • 1970-01-01
        • 2020-08-30
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        相关资源
        最近更新 更多