如何在此java程序中将0添加到个位数?

如何在此java程序中将0添加到个位数?,java,Java,我对Java非常陌生。我刚刚完成了基础知识(这是我第一次尝试使用while循环),现在工作中遇到了一个可以通过编程解决的问题。我们需要以“xx xx xx xx”格式向打印文档中添加数字,使其以00-00-00开始,以99-99-99结束。具体来说,我需要为单个数字设置前导零 我已经成功地编写了一个程序来打印我们需要的数字,我刚刚发现我可以简单地在命令提示符下输出到一个文本文件(在这台使用Windows XP和java 1.7的旧计算机上速度非常慢),但我不知道如何在一位数之前添加0 以下是我所

我对Java非常陌生。我刚刚完成了基础知识(这是我第一次尝试使用while循环),现在工作中遇到了一个可以通过编程解决的问题。我们需要以“xx xx xx xx”格式向打印文档中添加数字,使其以00-00-00开始,以99-99-99结束。具体来说,我需要为单个数字设置前导零

我已经成功地编写了一个程序来打印我们需要的数字,我刚刚发现我可以简单地在命令提示符下输出到一个文本文件(在这台使用Windows XP和java 1.7的旧计算机上速度非常慢),但我不知道如何在一位数之前添加0

以下是我所拥有的:

public class Numbers {
    public static void main(String[] args){
        int a = 0;
        int b = 0;
        int c = 0;
        while (a<100) {
            if(c<99){
                c = c+1;
                System.out.println(a + "-" + b + "-" + c);
            }
            else if(b<99) {
                c = 0;
                b = b+1;
                System.out.println(a + "-" + b + "-" + c);
            }
            else if(a<99) {
                c = 0;
                b = 0;
                a = a+1;
                System.out.println(a + "-" + b + "-" + c);
            }
        }
    }
}   
公共类编号{
公共静态void main(字符串[]args){
int a=0;
int b=0;
int c=0;

而(a对于单个整数类型编号
a
,使用

System.out.printf(“%02d-%02d-%02d\n”,a/100/100%100,a/100%100,a%100);

可以。
%100
提取
int
s的最后两位数字。
/
用于提取所需数字的位

如果您有三个独立的编号
a
b
c
,请使用


System.out.printf(“%02d-%02d-%02d\n”,a%100,b%100,c%100);
对于单个整数类型编号
a
,请使用

System.out.printf(“%02d-%02d-%02d\n”,a/100/100%100,a/100%100,a%100);

可以。
%100
提取
int
s的最后两位数字。
/
用于提取所需数字的位

如果您有三个独立的编号
a
b
c
,请使用

System.out.printf(“%02d-%02d-%02d\n”,a%100,b%100,c%100);
您可以

System.out.printf("%02d-%02d-%02d\n", a, b, c);
而不是您的println语句。

您可以

System.out.printf("%02d-%02d-%02d\n", a, b, c);

而不是println语句。

如果需要自定义输出: 使用命令

System.out.printf();
在您的情况下,您需要使用

System.out.printf("%02d-%02d-%02d",a,b,c);

如果需要自定义输出,请使用以下语句代替
System.out.println();
语句

: 使用命令

System.out.printf();
在您的情况下,您需要使用

System.out.printf("%02d-%02d-%02d",a,b,c);


而不是
System.out.println();
语句

System.out.format(“%02d”,a);
将打印
a
,这样在
a
为一位数字的情况下,空格中总是两位数字,前导0。我很抱歉听到您的问题。您有三个单独的数字还是只有一个大数字?这并不重要,但我本来也希望有办法让用户输入初始数字(例如,某些组需要以03-85-19开头)因此,要生成03-85-19,int将是38519?@FitzwilliamBennet-Darcy这基本上是一个大数字,中间有破折号,假设我正确理解了您的问题。
System.out.format(“%02d”,a);
将打印
a
,这样在
a
为一位数字的情况下,空格中总是两位数字,前导0。我很抱歉听到您的问题。您有三个单独的数字还是只有一个大数字?这并不重要,但我本来也希望有办法让用户输入初始数字(例如,某些组需要从03-85-19开始)所以要产生03-85-19,整数应该是38519?@FitzwilliamBennet-Darcy这基本上是一个大数字,中间有破折号,假设我正确理解了你的问题。考虑到这是三个两位数,
%100
/100
有必要吗?我认为Karol有一个数字。请看问题注释lly“用户输入初始编号”哦,我明白了。我是在他们代码中的基础上建立起来的。是的,如果他们得到了一个号码,而且都在
a
中,那么你是对的。对询问者的需求做出了很好的奉献。他们看起来确实很紧张。可怜的东西。考虑到这是三个两位数,
%100
/100
有必要吗?我认为卡洛l有一个数字。请参见问题注释,特别是“用户输入初始数字”哦,我明白了。我是在他们代码中的基础上建立起来的。是的,如果他们得到一个数字,并且都在
a
中,那么你是对的。很好地满足了询问者的需求。他们看起来确实很紧张。可怜的东西。哇,没想到会这么简单。我现在明白了printf的工作原理:这是一个将在e格式(引号中的东西)接受用逗号分隔的三个参数,对吗?哇,我没意识到它会这么简单。我现在理解了printf的工作原理:它是一个格式(引号中的东西)的函数,接受用逗号分隔的三个参数,对吗?