从 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?