从 int 获取 01 而不是 for 循环中的 1 [重复]

Posted

技术标签:

【中文标题】从 int 获取 01 而不是 for 循环中的 1 [重复]【英文标题】:Get a 01 from an int instead of 1 in a for loop [duplicate] 【发布时间】: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 秒的时间来谷歌搜索并找到解决方案。我怀疑这起了作用。 当然。我懂了。它是重复的。 【参考方案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) 方法。

【讨论】:

以上是关于从 int 获取 01 而不是 for 循环中的 1 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C 和 C++ for 循环使用 int 而不是 unsigned int?

golang for循环取值为啥不按顺序输出?

为啥我应该在循环中使用 foreach 而不是 for (int i=0; i<length; i++) ?

将 for 循环中的元素视为对象,而不是字符串

为什么for循环中的迭代器是字符串而不是整数?

删除 for 循环 - 使用字典而不是 pandas