2016-10-15 11 views
1

私はprintf()でいくつかのパラメータの代わりに1つの配列をパラメータとして使うことができるのだろうか?printf()は配列としてパラメータを使用します。出来ますか?

String[] strArr = {"Name","Address", "Mobile"}; 

//text =() -> strArr.getNext(); 

System.out.printf("%1$s %1$10s %1$10s", text); 

私はそれが可能でなければなりません感じています

は次のように言います。 javadocが言うように

+3

この 'System.out.printf( "%1 $ S%2つの$ 10S%3つの$ 10S"、strArr);'働くだろう。 –

+0

@HovercraftFullOfEels時には解決策が予想よりもずっと簡単です。応答 –

答えて

2

それは、可能です、これはSystem.out.printf("%1$s %2$10s %3$10s", strArr);となります。

もう1つの方法は、配列から​​を使用して取得できるJava 8のストリームを使用することです。例えば:

Arrays.stream(strArr).forEach(e -> System.out.printf("%-15s", e)); 
+0

またはストリーム .of(headText [0]) .forEach(st - > System.out.printf( "% - 10s"、st))のtnx; System.out.println(); –

+0

なぜ編集できないのですか? –

+0

@ my-:投稿後5分以内に編集して、いつでも削除することができます。 –

0

あなたはArrays.toString(Object[] a)を使用することができます。

public static String toString(Object[] a) 

は、指定された配列の内容の文字列表現を返します。配列に要素として他の配列が含まれている場合、Objectから継承したObject.toString()メソッドによって文字列に変換されます。

このメソッドから返される値は、aがnullの場合を除き、Arrays.asList(a).toString()が返す値と同じです。この場合、「null」が返されます。

関連する問題