如何在 Java 中使用前导空格设置数字的格式

2022-09-02 23:30:36

我有以下Java代码来生成由零填充的数字。

    DecimalFormat fmt = new DecimalFormat("000");
    for (int y=1; y<12; y++)
    {
        System.out.print(fmt.format(y) + " ");
    }

输出如下:

001 002 003 004 005 006 007 008 009 010 011

我的问题是:如何生成带有填充空格而不是前导零的数字?

1 2 3 4 5 6 7 8 9 10 11

注意:我知道在StackOverflow中有几个问题要求在String中填充空格。我知道如何使用String来做到这一点。我问是否可以用填充空格格式化数字


答案 1
    for (int y=1; y<12; y++)
    {
        System.out.print(String.format("%1$4s", y));
    }

它将打印长度为4的字符串,因此如果y = 1,它将打印3个空格和1,“1”,如果y是10,它将打印2个空格和10,“10”

查看 javadocs


答案 2
int i = 0;
while (i < 12) {
    System.out.printf("%4d", i);
    ++i;
}

4 是宽度。您也可以将 printf 替换为 format。


推荐