3

double[]配列を引数としてSystem.out.formatで情報を出力しようとしています。これは動作しません:

out.format("New dimensions:\n" +
        "Length: %f\n" +
        "Width: %f\n\n",
        doubleArray);

ただし、これは次のことを行います。

out.format("New dimensions:\n" +
        "Length: %f\n" +
        "Width: %f\n\n",
        doubleArray[0], doubleArray[1]);

最初の形式が機能しないのはなぜですか?おそらく文字列で問題なく動作します。

4

2 に答える 2

4

Java はあなたdoubleを aに自動ボックス化しますが、あなたをaDoubleに自動ボックス化しないため、一致しません。その結果、varargs にアンパックされる代わりに、配列は配列自体として扱われます。これは明らかに double としてフォーマットできません。double[]Double[]Object[]Object...

配列を のDouble[]代わりにとして宣言するdouble[]と、呼び出しがformat機能します。

于 2012-04-20T05:45:15.710 に答える
1

配列は double ではないため、機能しません (Java では配列はクラスであるため、ここでは一般的なポインターのようなものです)。何を出力するかを正確に指定する必要がありますが、それは%f format specifierです。ArraySomething[] が一致しません..

Java の書式設定の詳細については、こちらを参照してください。Javaの配列クラスはどのように機能しますか? 、Java 配列の場合。

于 2012-04-20T05:32:17.593 に答える