Java 相对于输入数字动态添加前导零

Java 相对于输入数字动态添加前导零,java,Java,可能重复: 我需要相对于输入数字长度动态添加一些前导零,例如,如果我输入10,它将输出 数字 01 02 03 04 05 06 07 08 09 十, 我认为这样做的方法是获取输入的数字的长度,然后使用一些格式将该值应用于计数器,只是不确定最好的方法 这就是我到目前为止所拥有的。。(我对编程非常陌生) publicstaticvoidmain(字符串[]args){ 整数; int计数器=1; int焊盘长度; 扫描仪ngrabber=新扫描仪(System.in); System.out.

可能重复:

我需要相对于输入数字长度动态添加一些前导零,例如,如果我输入10,它将输出

数字 01 02 03 04 05 06 07 08 09 十,

我认为这样做的方法是获取输入的数字的长度,然后使用一些格式将该值应用于计数器,只是不确定最好的方法

这就是我到目前为止所拥有的。。(我对编程非常陌生)

publicstaticvoidmain(字符串[]args){
整数;
int计数器=1;
int焊盘长度;
扫描仪ngrabber=新扫描仪(System.in);
System.out.println(“请输入数字以输出数字”);
numbers=ngrabber.nextInt();
系统输出打印项次(“数字”);

while(counter您应该使用Java的printf风格函数,如图所示

除非我不清楚语法,
2
将确保打印数字的长度至少为2,如果输入数字的长度小于2,
0
表示用
0
填充


编辑:若要动态更改编号,请尝试此操作

padlength = String.valueOf(numbers).length();
System.out.printf(String.format("\%0%dd " ,padlength),counter);

您应该使用Java的printf样式函数,如图所示

除非我不清楚语法,
2
将确保打印数字的长度至少为2,如果输入数字的长度小于2,
0
表示用
0
填充


编辑:若要动态更改编号,请尝试此操作

padlength = String.valueOf(numbers).length();
System.out.printf(String.format("\%0%dd " ,padlength),counter);

您可以使用
printf
,它在此处用于填充:

System.out.printf("%02d ", counter);

您可以使用
printf
,它在此处用于填充:

System.out.printf("%02d ", counter);

printf
是Java的正确答案 如果你发现自己需要在脑死亡的环境中这样做 (例如,Windows命令脚本,也称为批处理文件),以下是一种方法:

将上限数字转换为字符串;例如,10–>“10”
获取该字符串的长度:
strlen(“10”)=2

将多个零字符(
0
)附加到一个字符(
1
):
strcat(“1”、“0”、“0”)=“100”

将该字符串转换为数字:“100”–>100
对于要格式化的每个数字:添加上述数字(1+100=101),转换为字符串(101–>“101”),并去掉第一个字符(“101”–>“01”)


是的,这是一个难题。有人知道在Windows上做这件事的更好的方法吗?

printf
是Java的正确答案 如果你发现自己需要在脑死亡的环境中这样做 (例如,Windows命令脚本,也称为批处理文件),以下是一种方法:

将上限数字转换为字符串;例如,10–>“10”
获取该字符串的长度:
strlen(“10”)=2

将多个零字符(
0
)附加到一个字符(
1
):
strcat(“1”、“0”、“0”)=“100”

将该字符串转换为数字:“100”–>100
对于要格式化的每个数字:添加上述数字(1+100=101),转换为字符串(101–>“101”),并去掉第一个字符(“101”–>“01”)


是的,这是一个难题。有谁知道在Windows上做这件事的更好方法吗?

你应该试试printf风格的函数谷歌:“java零填充”给你即时回答你应该试试printf风格的函数谷歌:“java零填充”给你即时回答部分有效,但“%02d”除外需要与输入数字动态相关length@user1985625这就是填充的意思,试试看。如果你的意思是你需要动态地支持3位数字等,你可以生成你传递给那里的字符串。是的,这就是我试图做的,只是不确定在屏幕上syntax@user1985625试试我的编辑,不确定它是否完美,但你应该d能够掌握除“%02d”之外部分有效的ideayes需要与输入数字动态相关length@user1985625这就是填充的意思,试试看。如果你的意思是你需要动态地支持3位数字等,你可以生成你传递给那里的字符串。是的,这就是我试图做的,只是不确定在屏幕上syntax@user1985625试试我的编辑,不确定它是否完美,但你应该我能理解这个想法