2017-02-19 11 views
0
while(count <= maxNum){ 
    System.out.println("O-------O"); 
    System.out.printf("|" + "%8s", count + "|"); 
    System.out.println("O-------O"); 
    count++; 
    startTime = System.currentTimeMillis(); 
    //an empty loop! does nothing except keeps checking the continuation condition 
    //continues as long as the time that has passed is less than millisToWait 
    while(System.currentTimeMillis() - startTime < millisToWait); 
    System.out.println("O-------O"); 

上記は、私が達成しようとしているものの実際の出力を構成するコードの一部です。コードは、ほとんどの場合、意図した通りに動作しますが、出力(以下は画像として出力されます)は100%正確ではありません。すべての番号の右側に余分な "O ------- O"があります。私が間違っている場合Java文字列の書式設定の問題

Here's the output

は私を修正して、私はそれが最初のprintlnの文とは何かを持っていると信じて、私はまだそれが側に一旦上に一度印刷していますかどうかはわかりません。どんな助けもありがとうございます。

答えて

1

Printfは自動的に改行を追加しません。改行文字を手動で追加する必要があります。移植性の理由から%n instaid of \ nを使用します。フォーマットを簡素化することもできます。

変更三行目まで:

System.out.printf("|%8s%n|", count); 
+0

うわー。その1つの修正はそれを修正した。どうもありがとうございます。 –

+0

@shmoselありがとう、私は答えにそれを追加しました。 – Henrykvdb