如何计算带补零的整数
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);
随着位数的变化,这些数字格式不正确。
一种更灵活的方法是动态提供 width
、start
和 end
序列,这样 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
*/
我想用变量从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);
随着位数的变化,这些数字格式不正确。
一种更灵活的方法是动态提供 width
、start
和 end
序列,这样 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
*/