2017-01-08 10 views
0

私はプログラミングの初心者です。現在は、Javaでレスポンシブなテーブルを構築する方法を学習しています。私は何かに出くわしたと私は理解する必要があると思う。簡単な例を使って説明しましょう。Javaでレスポンステーブルを作成するには?

その後、私は2列、

String[] name = new String[] {"James","Tom","Rodriguez"}; 
Integer[] score = new Double[] {15,20,13}; 

を持っていると私はこのような何かにそれらを変換したい、

Name  Score 
James  15 
Tom  20 
Rodriguez 13 

私は「\ tの」、それらを整列することで何とか成功を使用していますが、少し長めの名前を追加すると、出力はこのようになります。

Name  Score 
James  15 
Tom  20 
Rodriguez Fernandes 13 

私の友人はSystem.out.printfを使用するように私に言ったが、データが大きい場合は特に、私は、配列にそれを適用するかどうかはわかりません。誰かがこのようなテーブルのフォーマットを改善する方法を教えてくれますか?ここで

public static void print(String[] names, Integer[] score){ 
    //Find the name with max length 
    int maxLength = Arrays.stream(names) 
     .mapToInt(String::length) 
     .max().getAsInt() + 2; 

    //Now, start the printing 
    System.out.println(String.format("%1$-" + maxLength + "s", "Name") + "Score"); 
    for(int i=0 ; i<names.length ; i++){ 
     System.out.println(String.format("%1$-" + maxLength + "s", names[i]) + score[i]); 
    } 
} 

、私が持っている:他のすべての名前を印刷しながら

答えて

1

これを実行するには、まず例えば、(最大長さマイナス文字列の長さ)最大長がstringを見つけて追加するスペースを必要とします最大長に名前の後に2つの空白を示すために最大長に2を追加しました。これは、mainから呼び出すことができます。例えば、

public static void main(String[] args) throws Exception{ 
    print(new String[]{"James","Tom","Rodriguez"}, new Integer[]{15,20,30}); 
} 
関連する問題