2016-12-08 4 views
0

私はjavaで 'ヒストグラム'を作成しようとしており、何らかのフォーマットで問題が発生しています。私は、度数分布表の印刷については、以下のループを持っている:Javaで1行に配列を印刷する

for (int i = 0; i < 10; i++) { 
     char asterisk[] = new char[frequency[i]]; 
     Arrays.fill(asterisk, '*'); 
     System.out.println(asterisk); 
     freqTable = bins[i] + "\t"; 
     System.out.println(freqTable); 
    } 

をしかし、これは次のように出力を生成します

************ 
1-10  
********** 
11-20 
********** 
21-30 

と私はそれがこのように印刷したいのですが:

1-10 ************ 
11-20 ********** 
21-30 ********** 

これを行う方法を知りません! toString()を使って試してみましたが、どこにも行きませんでした。

ありがとうございます!代わりにprintln

for (int i = 0; i < 10; i++) { 
    char asterisk[] = new char[frequency[i]]; 
    Arrays.fill(asterisk, '*'); 
    freqTable = bins[i] + "\t"; 
    System.out.print(freqTable); 
    System.out.println(asterisk); 
} 

または代替使用System.out.printf

System.out.printf ("%s %s%n", freqTable, asterisk); 

または単一System.out.println

System.out.println(freqTable + asterisk); 
+5

'System.out.print(freqTable)' '前のSystem.out.println(アスタリスク)'(予告 'print'と'のprintlnを実行します。 ')。 – Gendarme

+0

ちょうど詳細ですが、 'char [] asterisk'が' char asterisk [] 'よりも優先されます。後者はC構文であり、Javaではあまり使用されません。 –

答えて

2

単に順序を変更し、printを使用しますが、再注文する必要がyoを印刷するステートメントあなたのアイテム。私は、ループの終わりに単一printlnを使用することをお勧めします:

for (int i = 0; i < 10; i++) { 
    char asterisk[] = new char[frequency[i]]; 
    Arrays.fill(asterisk, '*'); 
    System.out.println(bins[i] + "\t" + asterisk); 
}