是否有一种很好的方法可以将整数填充为零而不将其转换为字符串?

时间:2013-04-23 14:26:39

标签: java string format int

我想不出更好的方法是在没有首先将其转换为String的情况下使用零填充整数。有没有办法做到这一点?我发现了很多关于这方面的问题,但它们都需要String转换。我知道我们可以通过这种方法找到长度:

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

但是,这仍然需要我将其转换为String并在之后返回。当然,还有更好的方法吗?

3 个答案:

答案 0 :(得分:4)

没有。 int表示数学整数值,表示为32位。数字0001是1,并且具有唯一的二进制表示。左填充整数不是整数。他们是字符串。

答案 1 :(得分:1)

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

答案 2 :(得分: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);