使用printf将零添加到整数值

时间:2015-07-30 01:47:15

标签: java printf append

我正在尝试使用printf()函数将零添加到用户输入的数字中。但是,我不确定语法用法。以下是我到目前为止的情况:

public class Solution {

    public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            final int requiredNumLength = 3;
            // readign untill EOF
            while (reader.hasNext()){
                    // getting the word form the input as a string
                    String word = reader.next();
                    // getting the number from the input as an integer
                    int num = reader.nextInt();
                    int length = String.valueOf(num).length();
                            if (length < requiredNumLength){
                                    int zerosRequired = requiredNumLength - length;
                                    //System.out.println("required zeros: " + zerosRequired);
                            }
                    // print out the columns using the word and num variables
                    System.out.printf("%-10s  %-10s%n" , word, num);

            }
    }

}

以下是一个使用它的例子:

input : java 023
output: java          023

(工作正常)

现在我的问题是,在一个数字小于3个字符的情况下,我希望能够在前面添加零,使其长度为3.此外,这就是我正在努力做的事情。 if语句,用于查找数字需要多少个零。我想在printf()函数中使用这样的东西:("%0zerosRequiredd", num);但是,我不知道如何将它与我已有的一起使用:System.out.printf("%-10s %-10s%n" , word, num)。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您可以这样做:

String formatted = String.format("%03d", num);

这会导致很多零。

对于您的示例,您可以使用:

System.out.printf("%-10s %03d" , word, Integer.parseInt(num));

如果num是float,请使用Float.parseFloat(num),或者更好地将其声明为正确的类型。

见下文:

 public static void main(String[] args){
    String word = "Word";

    int num = 5;
    System.out.printf("%-10s  %03d\n" , word, num);

    num = 55;
    System.out.printf("%-10s  %03d\n" , word, num);

    num = 555;
    System.out.printf("%-10s  %03d\n" , word, num);

    num = 5555;
    System.out.printf("%-10s  %03d\n" , word, num);

    num = 55555;
    System.out.printf("%-10s  %03d\n" , word, num);
    }

这是输出:

mike@switters:~/code/scratch$ javac Pf.java && java Pf
Word        005
Word        055
Word        555
Word        5555
Word        55555