我想不出更好的方法是在没有首先将其转换为String的情况下使用零填充整数。有没有办法做到这一点?我发现了很多关于这方面的问题,但它们都需要String转换。我知道我们可以通过这种方法找到长度:
int length = (num==0) ? 1 : (int)Math.log10(num) + 1;
但是,这仍然需要我将其转换为String并在之后返回。当然,还有更好的方法吗?
答案 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);