我想不出更好的方法来用零填充整数而不先将其转换为字符串。有没有办法做到这一点?我发现了很多关于此的问题,但它们都需要字符串转换。我知道我们可以用这种方法找到长度:
int length = (num==0) ? 1 : (int)Math.log10(num) + 1;
但是,这仍然需要我将其转换为字符串,然后再转换回来。当然,有更好的方法吗?
No. Anint
代表一个数学整数值,表示为 32 位。数字 0001 是 1,具有唯一的二进制表示。左填充整数不是整数。它们是字符串。
不可以。数字类型不能包含前导零。这是格式化文本表示的一个特征,即Strings
既然你已经有了长度,我猜前导零只是为了输出,但最终你的问题得到了其他两张海报的回答。
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);