2016-08-04 8 views
0

私はJavaにとって非常に新しいです。私は基本的に(これは私の最初のwhileループ使用の試みですが)ほとんど邪魔していませんし、現在はプログラミングではっきりと解決できる仕事上の問題があります。印刷文書に「xx-xx-xx」という形式で番号を付け加え、00-00-00で始まり99-99-99で終わるようにする必要があります。具体的には、1桁の先頭にゼロを付ける必要があります。このJavaプログラムの1桁に0を追加するにはどうすればよいですか?

私は必要な数字を印刷するプログラムを書いていますが、コマンドプロンプトでテキストファイルに出力することができました(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); 
      } 
     } 
    } 
} 

が、私は物事のカップルを試してみましたが、私は、再び、私は私がやっている見当がつかないので、それらを正しく実装していない可能性が高い午前:

は、ここで私が持っているものです。文字列を一般的に書式設定する方法があり、printf関数があり、%02dでできることがわかっています(私はString.format( "%02d"、myNumber)を答えとして見ましたが、私のコードでそれを実装する方法を正確に理解することはできませんでした)、PrintStreamとPrintWriterなどについて何かを読んでいましたが、そのすべてをどのように使用するのか十分に経験していません。

本当の問題は、私がこの作業をするのに多くの時間がかからないことです。残念なことに私たちのクライアントはすばやくターンアラウンドタイムを要求しています(彼らはすでに昨日の午後、 。私は最終的にそれを理解することができるだろうと確信していると私は時間があるときに試し続けますが、私はまた、他の仕事があり、昨夜は時間がありませんでした。

ダッシュを取り除くためにコードを書き直すことを考えていました(既に印刷されている文字列があると考えて、私が印刷したものをフォーマットできないようにしているかもしれませんが)そこ。

私はJavaとプログラミングの一般的な探求(私は何か他のものよりも多くのことを学ぶのが大好きだと思う、私は絶え間なく貪欲で、出会うことができない)の入力と提案を大変感謝します。単一の一体型番号aについては

+0

'System.out.formatを使用する必要があなたのケースでは、コマンド

System.out.printf(); 

を使用します(」 %02d "、a);は' a'を印字します。 'a'はスペースの2桁で、' a'の場合は先頭の0が1桁です。 –

+0

ご迷惑をおかけして申し訳ありません。 3つの別個の番号か、1つの大きな番号がありますか? –

+0

これは重要ではありませんが、もともとは、ユーザーに初期番号を入力するよう求める方法がいくつかあります(一部のグループは03-85-19などで開始する必要があります)。 –

答えて

4

あなたが行うことができ、

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

+1

うわー、それはそれが簡単だろうとは思わなかった。私は今printfの仕組みを理解しています:それはコンマで区切られた3つの引数を取る形式(引用符で囲まれたもの)になる関数ですよね? –

1

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

はそれを行うだろう使用。 % 100intの最後の2桁を抽出します。 /は、必要な数のビットを抽出するために使用されます。あなたは3つの別々の数字ab、およびcを持っている場合は

、使用代わりにあなたのprintln文の

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

+0

)。これは3つの2桁の数字を考慮すると '%100' '/ 100'は必要ですか? –

+0

私はKarolに1つの番号があると思います。特に質問のコメントを参照してください "最初の数字を入力するユーザー" –

+0

ああ、私は参照してください。私は彼らがコードで持っていたものを築き上げていました。ええ、彼らが1つの番号を取得している場合、それはすべての 'で'あなたは正しいです。 –

0

は、カスタム出力をしたい場合: はあなたが

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

代わりのSystem.out.println();

関連する問題