所以我一直在研究在字符串之前添加0的命名约定。在将所有内容分解为if语句之前,我试图以简短的方式执行此操作。在这里我在int之前打印0,给我一个00005的答案。
String test = null;
int n = 5;
test = String.format("%05d%n", n);
System.out.println(test);
现在我想做的是做一个字符串。因此,例如,如果String n =" 5&#34 ;;它会给我一个00005的答案,如果String n =" 20&#34 ;;它将是00020.我不希望使用整数方法将字符串更改为和int,并返回到字符串。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:5)
不确定这是否是最佳方式,但这就是我使用的方式。
public static String pad (String input, char with, int desiredLength)
{
if (input.length() >= desiredLength) {
return input;
}
StringBuilder output = new StringBuilder (desiredLength);
for (int i = input.length (); i < desiredLength; i++) {
output.append (with);
}
output.append (input);
return output.toString();
}
用法(假设静态方法在名为Utils的类中):
System.out.println (Utils.pad(myString,'0',10));
编辑:推广到任何输入字符串,填充字符和所需的输出长度。
答案 1 :(得分:2)
这个怎么样?
("00000" + numberAsString).substring(numberAsString.length())
仅当您有5个或更少的数字时才会有效。
老实说,我也认为4次这段代码是如何工作的,但是经过了解后我发布了,因为这是开箱即用的东西。
答案 2 :(得分:0)
假设n
是代表数字的String
,或者更通常n
没有任何空格字符:
String.format("%5s",n).replace(" ","0");