1

我想不出更好的方法来用零填充整数而不先将其转换为字符串。有没有办法做到这一点?我发现了很多关于此的问题,但它们都需要字符串转换。我知道我们可以用这种方法找到长度:

int length = (num==0) ? 1 : (int)Math.log10(num) + 1;

但是,这仍然需要我将其转换为字符串,然后再转换回来。当然,有更好的方法吗?

4

3 回答 3

4

No. Anint代表一个数学整数值,表示为 32 位。数字 0001 是 1,具有唯一的二进制表示。左填充整数不是整数。它们是字符串。

于 2013-04-23T14:30:04.447 回答
1

不可以。数字类型不能包含前导零。这是格式化文本表示的一个特征,即Strings

于 2013-04-23T14:30:23.063 回答
0

既然你已经有了长度,我猜前导零只是为了输出,但最终你的问题得到了其他两张海报的回答。

int length = (num==0) ? 1 : (int)Math.log10(num) + 1;
String zeros;
for(int i=0; i<length; i++) {
  zeros = zeros.concat("0");
}
System.out.println(zeros + num);
于 2013-04-23T15:31:36.973 回答