0

フラグについて言えば、javadocには、フラグ ' ' (空のスペース) が、数字の先頭に記号「+」の代わりに空のスペースを自動的に挿入することが記載されています。ただし、試してみると、フォーマット指定子の最初のオプション引数が満たされている場合にのみ機能します。

  System.out.printf("% d%n %1$ d%n",0x3);

両方のフォーマッタに空のスペースがありますが、後者のフォーマッタでのみ機能しますが%1$ d%n、前者で% d%nは、正の数を意味する先頭の空のスペースが存在しません (フラグ ' ' がオンになっていても)。

そのようなことが起こる特定の理由はありますか?前もって感謝します。

4

1 に答える 1

0

そのコード行の出力は次のとおりです。

 3
  3

両方の行には先頭にスペースがありますが、2 番目と 3 番目の変換の間にスペースがあるため、つまり、String読みやすくするためにを分割した場合、2 行目には 2 つのスペースがあります。

"% d" + "%n" + " " + "%1$ d" + "%n"
于 2013-04-26T13:10:52.357 に答える