如何计算带补零的整数

How to Count Integers With Padded Zeros

我想用变量1数到10宽度.

宽度的示例:4

计数应为:

0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 ---> Note that it's not 00010

宽度的示例:2

计数应为:

01 ... 09 10 ---> Not 010

我试过以下方法:

第一次尝试

for(int i = 1; i <= 10; ++i) {
   System.out.println("0".repeat(width-1) + i);
}

第二次尝试

String output = String.format("%04d", 1);

随着位数的变化,这些数字格式不正确。

一种更灵活的方法是动态提供 widthstartend 序列,这样 none 的值将被硬编码。

将使用字符串连接创建具有给定宽度的输出模板。

public static void printZeroPaddedSequence(int start, int end, int width) {
    String template = "%0" + width + "d ";
    for (int i = start; i <= end; i++) {
        System.out.printf("template", i);
    }
}

public static void main(String[] args) {
    printZeroPaddedSequence(1, 10, 4);
}

输出

0001 0002 0003 0004 0005 0006 0007 0008 0009 0010

您可以创建格式说明符长度可变的格式字符串。将宽度变量调整为您需要的任何前导 0。

int width = 2;
String format = "%0"+width+"d";

for(int i = 1; i <= 10; i++)  {
    String output = String.format(format, i);
    System.out.println(output);
}


/* Output:
01
02
03
04
05
06
07
08
09
10
*/