将零前置到int-java

将零前置到int-java,java,string,Java,String,如果int的字符串等效长度小于6,我想将零前置到int。类似于String.format。例如: int e = 21; System.out.println(String.format("%06d", e)); //000021 int e = 3564; System.out.println(String.format("%06d", e)); //003564 我需要的是上面输入的210000和356400末尾的零。是否已经实现了一些可以完成这项工作的东西,或者我需要自己编写代码?如果是

如果int的字符串等效长度小于6,我想将零前置到int。类似于String.format。例如:

int e = 21;
System.out.println(String.format("%06d", e)); //000021
int e = 3564;
System.out.println(String.format("%06d", e)); //003564
我需要的是上面输入的
210000
356400
末尾的零。是否已经实现了一些可以完成这项工作的东西,或者我需要自己编写代码?如果是,如何处理可变长度

如果可以使用,您可以访问
rightPad
方法:

while (e < 100_000) e *= 10;
StringUtils.rightPad(String.valueOf(e), 6, "0");

如果您想执行类似的操作,但又不想依赖外部库,可以编写一个小方法:

StringBuilder sb = new StringBuilder(6);
sb.append(e);
sb.append("000000", Math.min(sb.length(), 6), 6);
return sb.toString();

以下方法使用提供的字符填充提供的字符串,直到达到字段宽度

公共静态字符串rightPad(字符串str,int fieldwidth,char c){
StringBuilder sb=新的StringBuilder(str);
while(fieldwidth>sb.length()){
sb.附加(c);
}
使某人返回字符串();
}
示例:要用两个零填充1234,请执行以下操作:

intv=1234;
字符串padded=rightPad(整数.toString(v),6,'0');

而(e<100_000)e*=10?@SilviuBurcea真丢人。:-)使用填充物。此外,您不必调用
String.format()
。打印格式化值时,可以使用
System.out.printf()
。如果
e
0
,该怎么办?:)非常感谢你。我还没有想到这个简单的解决办法。十分钟结束后将接受答案。@ROMANIA_engineer也被编辑为处理0。@ROMANIA_engineer很好,但与我的上下文无关,因为我的输入总是>0。@SilviuBurcea它也不处理负数。注意:这是第三方类。不是JavaAPI的一部分。
StringBuilder sb = new StringBuilder(6);
sb.append(e);
sb.append("000000", Math.min(sb.length(), 6), 6);
return sb.toString();