将0&#39添加到string / int变量

时间:2014-07-29 21:30:53

标签: java eclipse string

所以我一直在研究在字符串之前添加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,并返回到字符串。任何帮助,将不胜感激。谢谢!

3 个答案:

答案 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个或更少的数字时才会有效。

Ideone link to check code

Reference

老实说,我也认为4次这段代码是如何工作的,但是经过了解后我发布了,因为这是开箱即用的东西。

答案 2 :(得分:0)

假设n是代表数字的String,或者更通常n没有任何空格字符:

String.format("%5s",n).replace(" ","0");