public final class Formatter extends Object implements Closeable, Flushable
byte
、BigDecimal
、およびCalendar
などの一般的なJavaの型をサポートします。任意のユーザー型に対する限定的な書式のカスタマイズについては、Formattable
インタフェースを使用します。
マルチスレッド・アクセスを実行する場合、フォーマッタは必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
Java言語の書式付き出力は、Cのprintf
の影響を大きく受けています。書式文字列はCに似ていますが、Java言語に対応し、その機能を活用するために、一部がカスタマイズされています。また、Javaの書式は、Cよりも厳密です。たとえば、変換がフラグと互換性がない場合、例外がスローされます。Cでは、適用不可能なフラグは、無視されるだけです。このため、書式文字列は、Cプログラマになじみのあるものになっていますが、Cとの完全な互換性を保っているわけではありません。
使用例:
StringBuilder sb = new StringBuilder(); // Send all output to the Appendable object sb Formatter formatter = new Formatter(sb, Locale.US); // Explicit argument indices may be used to re-order output. formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d") // -> " d c b a" // Optional locale as the first argument can be used to get // locale-specific formatting of numbers. The precision and width can be // given to round and align the value. formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E); // -> "e = +2,7183" // The '(' numeric flag may be used to format negative numbers with // parentheses rather than a minus sign. Group separators are // automatically inserted. formatter.format("Amount gained or lost since last statement: $ %(,.2f", balanceDelta); // -> "Amount gained or lost since last statement: $ (6,217.58)"
一般的な書式設定要求で使用可能な便利なメソッドが存在します。
// Writes a formatted string to System.out. System.out.format("Local time: %tT", Calendar.getInstance()); // -> "Local time: 13:34:18" // Writes formatted output to System.err. System.err.printf("Unable to open file '%1$s': %2$s", fileName, exception.getMessage()); // -> "Unable to open file 'food': No such file or directory"
Cのsprintf(3)
と同様に、staticメソッドString.format
を使用して文字列の書式を設定できます。
// Format a string containing a date. import java.util.Calendar; import java.util.GregorianCalendar; import static java.util.Calendar.*; Calendar c = new GregorianCalendar(1995, MAY, 23); String s = String.format("Duke's Birthday: %1$tb %1$te, %1$tY", c); // -> s == "Duke's Birthday: May 23, 1995"
この仕様は、2つのセクションに分けられます。最初の「サマリー」セクションでは、書式設定の基本的な概念を扱います。このセクションは、このクラスをすぐに利用することを望む、ほかのプログラミング言語での書式付き出力に慣れたユーザーを対象にしています。続く「詳細」セクションでは、このクラスに固有の実装の詳細を説明します。このセクションは、より厳密な仕様の書式設定を必要とするユーザーを対象にしています。
このセクションでは、書式設定の概要を簡潔に説明します。動作の詳細については、「詳細」セクションを参照してください。
書式付きの出力を生成する各メソッドには、書式文字列と引数リストを指定する必要があります。書式文字列はString
で、これには固定のテキストと1つ以上の埋め込まれた書式指示子を含めることができます。次に例を示します。
この場合、書式文字列はCalendar c = ...; String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
format
メソッドの最初の引数です。これには、引数の処理方法およびテキスト内の挿入位置を示す3つの書式指示子「%1$tm
」、「%1$te
」、および「%1$tY
」が含まれます。書式文字列の残りの部分は固定テキストで、"Dukes Birthday: "
およびほかの空白や句読点が含まれます。引数リストは、書式文字列のあとにメソッドに渡されるすべての引数で構成されます。前述した例では、引数リストのサイズは1で、Calendar
オブジェクトc
で構成されます。
%[argument_index$][flags][width][.precision]conversion
オプションのargument_indexは、引数リスト内での引数の位置を示す10進整数です。最初の引数は「1$
」、2番目の引数は「2$
」で参照されます。
オプションのflagsは、出力書式を変更する文字のセットです。有効なフラグのセットは、変換によって異なります。
オプションのwidthは、出力に書き込む最小文字数を示す正の10進整数です。
オプションのprecisionは、文字数を制限するために通常使用される正の10進整数です。その動作は、変換によって異なります。
必須のconversionは、引数を書式設定する方法を示す文字です。指定された引数で有効な変換セットは、引数のデータ型によって異なります。
%[argument_index$][flags][width]conversion
オプションのargument_index、flags、およびwidthの定義は、前述のとおりです。
必須のconversionは、2つの文字シーケンスです。最初の文字は't'
または'T'
です。2番目の文字は使用する書式を示します。これらの文字は、GNU date
およびPOSIX strftime(3c)
で定義された文字に類似していますが完全に同一ではありません。
%[flags][width]conversion
オプションのflagsおよびwidthの定義は、前述のとおりです。
必須のconversionは、出力への挿入内容を示す文字です。
変換は、次のカテゴリに分けられます。
char
、Character
、byte
、Byte
、short
、およびShort
に適用されます。Character.isValidCodePoint(int)
がtrue
を返す場合、この変換は、int
およびInteger
型にも適用されます。
byte
、Byte
、short
、Short
、int
、Integer
、long
、Long
、BigInteger
などのJava整数型に適用されます(ただし、char
またはCharacter
を除く)
float
、Float
、double
、Double
、およびBigDecimal
などのJava浮動小数点型に適用されます
long
、Long
、Calendar
、Date
、TemporalAccessor
など、日付または時間のエンコーディングが可能なJava型に適用されます
'%'
('\u0025')を生成します
次の表は、サポートする変換を要約したものです。大文字(つまり、'B'
、'H'
、'S'
、'C'
、'X'
、'E'
、'G'
、'A'
、および'T'
)で表された変換は、それぞれの小文字を使用する変換と同じですが、変換の結果は一般的に使用されているLocale
のルールに従って大文字に変換されます。結果は、次のString.toUpperCase()
を呼び出した場合と同じになります。
out.toUpperCase()
変換 | 引数のカテゴリ | 説明 |
---|---|---|
'b' , 'B'
| 一般 | 引数argがnull の場合、結果は「false 」になります。argがboolean またはBoolean の場合、結果はString.valueOf(arg) により返される文字列になります。そうでない場合、結果はtrueになります。
|
'h' , 'H'
| 一般 | 引数argがnull の場合、結果は「null 」になります。それ以外の場合、結果はInteger.toHexString(arg.hashCode()) の呼出しで取得されます。
|
's' , 'S'
| 一般 | 引数argがnull の場合、結果は「null 」になります。argがFormattable を実装する場合、arg.formatTo が呼び出されます。それ以外の場合、結果はarg.toString() の呼出しで取得されます。
|
'c' , 'C'
| 文字 | 結果はUnicode文字です。 |
'd'
| 整数 | 結果は、10進整数として書式設定されます。 |
'o'
| 整数 | 結果は、8進整数として書式設定されます。 |
'x' , 'X'
| 整数 | 結果は、16進整数として書式設定されます。 |
'e' , 'E'
| 浮動小数点 | 結果は、浮動小数点表示形式の10進数として書式設定されます。 |
'f'
| 浮動小数点 | 結果は、10進数として書式設定されます。 |
'g' , 'G'
| 浮動小数点 | 結果は、四捨五入処理後の精度および値に応じて浮動小数点表示形式または10進数書式を使用して書式設定されます。 |
'a' , 'A'
| 浮動小数点 | 結果は、有効数字および指数を持つ16進浮動小数点数として書式設定されます。この変換は、後者の引数カテゴリが浮動小数点であるにもかかわらず、BigDecimal 型ではサポートされていません。
|
't' , 'T'
| 日付/時刻 | 日付および時刻変換文字の接頭辞です。「日付/時刻変換」を参照してください。 |
'%'
| パーセント | 結果は、リテラル'%' (u0025)になります。
|
'n'
| 行区切り文字 | 結果は、プラットフォーム固有の行区切り文字です。 |
変換として明示的に定義されていない文字はすべて不正であり、将来の機能拡張に備えて予約されています。
次の日付および時刻変換文字の接尾辞が、't'
および'T'
変換用に定義されています。この型は、GNU date
およびPOSIX strftime(3c)
で定義された型に類似していますが完全に同一ではありません。秒内のミリ秒を表す'L'
など、Java固有の機能にアクセスするための追加の変換型が提供されています。
時刻の書式設定では、次の変換文字が使用されます。
'H'
| 24時間制の時。必要に応じて0を先頭に追加し、2桁で表現します(00 - 23 )。
|
'I'
| 12時間制の時。必要に応じて0を先頭に追加し、2桁で表現します(01 - 12 )。
|
'k'
| 24時間制の時(0 - 23 )。
|
'l'
| 12時間制の時(1 - 12 )。
|
'M'
| 分。必要に応じて0を先頭に追加し、2桁で表現します(00 - 59 )。
|
'S'
| 秒。必要に応じて0を先頭に追加し、2桁で表現します(00 - 60 )。「60 」はうるう年での秒のサポートに必要な特殊な値です。
|
'L'
| ミリ秒。必要に応じて0を先頭に追加し、3桁で表現します(000 - 999 )。
|
'N'
| ナノ秒。必要に応じて0を先頭に追加し、9桁で表現します(000000000 - 999999999 )。
|
'p'
| ロケール固有の午前または午後を示す小文字のマーカー(「am 」または「pm 」など)。変換接頭辞の'T' を使用すると、結果は大文字で強制出力されます。
|
'z'
| RFC 822に準拠した、GMTからの数値タイムゾーン・オフセット(-0800 など)。この値は、必要に応じて夏時間で調整されます。long 、Long 、およびDate の場合、使用されるタイムゾーンは、このJava仮想マシン・インスタンスのデフォルト・タイム・ゾーンです。
|
'Z'
| タイムゾーンの省略形を表す文字列。この値は、必要に応じて夏時間で調整されます。long 、Long 、およびDate の場合、使用されるタイムゾーンは、このJava仮想マシン・インスタンスのデフォルト・タイム・ゾーンです。Formatterのロケールは、引数のロケール(存在する場合)よりも優先されます。
|
's'
| 1970年1月1日00:00:00 UTCの元期開始からの秒(Long.MIN_VALUE/1000 からLong.MAX_VALUE/1000 まで)。
|
'Q'
| 1970年1月1日00:00:00 UTCの元期開始からのミリ秒(Long.MIN_VALUE からLong.MAX_VALUE まで)。
|
日付の書式設定では、次の変換文字が使用されます。
'B'
| ロケール固有の月の完全な名前 ("January" 、"February" など)。
|
'b'
| ロケール固有の月の省略名 ("Jan" 、"Feb" など)。
|
'h'
| 'b' と同じ。
|
'A'
| ロケール固有の曜日の完全な名前("Sunday" 、"Monday" など)。
|
'a'
| ロケール固有の曜日の短縮名("Sun" 、"Mon" など)。
|
'C'
| 4桁の年を100 で割った値。必要に応じて0を先頭に追加し、2桁で表示します(00 - 99 )
|
'Y'
| 年。必要に応じて0を先頭に追加し、4桁以上で表現します。たとえば、0092 は、グレゴリオ歴の92 CEと等価です。
|
'y'
| 年の下2桁。必要に応じて0を先頭に追加します(00 - 99 )。
|
'j'
| 年の何日目かを表す日。必要に応じて0を先頭に追加し、3桁で表現します。たとえば、グレゴリオ歴の場合、001 - 366 になります。
|
'm'
| 月。必要に応じて0を先頭に追加し、2桁で表現します(01 - 13 )。
|
'd'
| 月の何日目かを表す日。必要に応じて0を先頭に追加し、2桁で表現します(01 - 31 )
|
'e'
| 月の何日目かを表す日。最大2桁で表現します(1 - 31 )。
|
一般の日付/時刻変換の書式設定では、次の変換文字が使用されます。
'R'
| "%tH:%tM" として24時間制で書式設定された時刻。
|
'T'
| "%tH:%tM:%tS" として24時間制で書式設定された時刻。
|
'r'
| "%tI:%tM:%tS %Tp" として12時間制で書式設定された時刻。午前および午後を示すマーカー('%Tp' )の位置はロケールによって異なります。
|
'D'
| "%tm/%td/%ty" として書式設定された日付。
|
'F'
| "%tY-%tm-%td" として書式設定されたISO 8601に準拠した日付。
|
'c'
| "%ta %tb %td %tT %tZ %tY" として書式設定された日付および時間("Sun Jul 20 16:17:00 EDT 1969" など)。
|
日付/時刻変換の接尾辞として明示的に定義されていない文字はすべて不正であり、将来の機能拡張に備えて予約されています。
次の表に、サポートされるフラグのサマリーを示します。yは、指定された引数型でフラグがサポートされることを意味します。
フラグ | 一般 | 文字 | 整数 | 浮動小数点 | 日付/時刻 | 説明 |
---|---|---|---|---|---|---|
'-' | y | y | y | y | y | 結果は左揃えになります。 |
'#' | y1 | - | y3 | y | - | 結果は、変換に依存する代替フォームを使用する必要があります。 |
'+' | - | - | y4 | y | - | 結果には、常に符号が含まれます。 |
' ' | - | - | y4 | y | - | 結果の先頭には、正の値を示す空白が含まれます。 |
'0' | - | - | y | y | - | 結果にはゼロが追加されます。 |
',' | - | - | y2 | y5 | - | 結果には、ロケール固有のグループ化区切り文字が含まれます。 |
'(' | - | - | y4 | y5 | - | 負の数値をカッコで囲みます。 |
1 Formattable
の定義に依存する。
2 'd'
変換のみ。
3 'o'
、'x'
、および'X'
変換のみ。
4 'd'
、'o'
、'x'
、および'X'
変換がBigInteger
に適用されるか、'd'
がbyte
、Byte
、short
、Short
、int
、Integer
、long
、およびLong
に適用される場合。
5 'e'
、'E'
、'f'
、'g'
、および'G'
変換のみ。
変換として明示的に定義されていないフラグはすべて不正であり、将来の機能拡張に備えて予約されています。
widthは、出力に書き込まれる最小文字数です。行区切り文字変換では、widthは使用できません。widthが指定された場合、エラーがスローされます。
一般の引数型では、precisionは出力に書き込まれる最大文字数です。
'a'
、'A'
、'e'
、'E'
、および'f'
の浮動小数点の変換では、precisionは基数点以下の桁数になります。変換が'g'
または'G'
の場合は、四捨五入処理後の結果として得られる絶対値の合計桁数になります。
文字、整数、日付/時刻引数タイプ、およびパーセント、行区切り文字変換の場合、precisionは適用できません。precisionが指定された場合、例外がスローされます。
引数インデックスは、引数リスト内での引数の位置を示す10進整数です。最初の引数は「1$
」、2番目の引数は「2$
」で参照されます。
位置で引数を参照する別の方法は、'<'
('\u003c')フラグを使用することです。このフラグを指定すると、以前の書式指示子の引数が再利用されます。たとえば、次の2つの文では、同一の文字列が生成されます。
Calendar c = ...; String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);
このセクションでは、条件や例外、サポートされるデータ型、ローカリゼーション、およびフラグ、変換、データ型間の相互作用を含む、書式設定の動作の詳細を示します。書式設定の概念については、「サマリー」を参照してください。
変換、日付/時刻変換の接尾辞、またはフラグとして明示的に宣言されていない文字はすべて不正であり、将来の機能拡張に備えて予約されています。書式文字列内でこの種の文字を使用すると、UnknownFormatConversionException
またはUnknownFormatFlagsException
がスローされます。
書式指示子にwidthが含まれる場合、precisionの値が無効な場合、または書式指示子がサポートされない場合は、IllegalFormatWidthException
またはIllegalFormatPrecisionException
がそれぞれスローされます。
書式指示子に、対応する引数に適用不可能な変換文字が含まれる場合、IllegalFormatConversionException
がスローされます。
指定された例外はすべて、Formatter
のformat
メソッドのいずれか、およびString.format
やPrintStream.printf
などのformat
簡易メソッドのいずれかによりスローされます。
大文字(つまり、'B'
、'H'
、'S'
、'C'
、'X'
、'E'
、'G'
、'A'
、および'T'
)で表された変換は、それぞれの小文字を使用する変換と同じですが、変換の結果は一般的に使用されているLocale
のルールに従って大文字に変換されます。結果は、次のString.toUpperCase()
を呼び出した場合と同じになります。
out.toUpperCase()
次の一般変換を、任意の引数型に適用できます。
'b'
| '\u0062' | Boolean.toString(boolean) により返されるtrue またはfalse を生成します。
引数が |
'B'
| '\u0042' | 'b' の大文字のバリアントです。
|
'h'
| '\u0068' | オブジェクトのハッシュ・コード値を表す文字列を生成します。
引数argが |
'H'
| '\u0048' | 'h' の大文字のバリアントです。
|
's'
| '\u0073' | 文字列を生成します。
引数が |
'S'
| '\u0053' | 's' の大文字のバリアントです。
|
次のフラグが一般変換に適用されます。
'-'
| '\u002d' | 左揃えで出力します。必要に応じ、変換された値の末尾に空白('\u0020')が追加されて、フィールドの最小幅が満たされます。widthが指定されていない場合は、MissingFormatWidthException がスローされます。このフラグが指定されていない場合、右揃えで出力されます。
|
'#'
| '\u0023' | 出力で代替フォームを使用する必要があります。フォームの定義は変換で指定されます。 |
widthは、出力に書き込まれる最小文字数です。変換後の値の長さがwidthより小さい場合、総文字数がwidthに等しくなるまで出力に' ' ('\u0020')がパディングされます。デフォルトでは、左側にパディングされます。'-'
フラグが指定された場合、右側にパディングされます。widthが指定されていない場合、最小値は存在しません。
precisionは、出力に書き込まれる最大文字数です。precisionはwidthの前に適用されるため、widthの値がprecisionより大きい場合でも、出力はprecision
で指定された文字数に切り詰められます。precisionが指定されていない場合、文字数に明示的な制限は存在しません。
char
およびCharacter
に適用できます。Character.isValidCodePoint(int)
がtrue
を返すときは、byte
、Byte
、short
、Short
、int
、およびInteger
の各型にも適用できます。false
が返された場合、IllegalFormatCodePointException
がスローされます。
'c'
| '\u0063' | 「Unicode文字表現」の記述に従い、引数をUnicode文字として書式設定します。引数が補助文字を表す場合、これを1つ以上の16ビットchar にできます。
|
'C'
| '\u0043' | 'c' の大文字のバリアントです。
|
一般変換用に定義された'-'
フラグが適用されます。'#'
フラグが指定されている場合は、FormatFlagsConversionMismatchException
がスローされます。
widthは、一般変換用に定義されます。
precisionは適用できません。precisionが指定された場合は、IllegalFormatPrecisionException
がスローされます。
数値変換は、次のカテゴリに分けられます。
数値型は、次のアルゴリズムに従って書式設定されます。
整数部、小数部、および指数(データ型で必要な場合)の数字の取得後に、次の変換が適用されます。
'0'
+ zになります。
','
('\u002c') フラグが指定された場合、ロケール固有のグループ区切り文字が挿入されます。文字列の整数部を最小有効桁から最大有効桁までスキャンし、ロケールのグループ化サイズで定義された間隔で区切り文字を挿入します。
'0'
フラグが指定された場合、文字列の長さが要求されたフィールド幅と等しくなるまで、ロケール固有のゼロ数字が記号の後ろ(記号が存在する場合)と、最初のゼロ以外の数字の前に挿入されます。
'('
フラグが指定されている場合、前に'('
('\u0028')が、後ろに')'
('\u0029')がそれぞれ付けられます。
'('
フラグが指定されていない場合、前に'-'
('\u002d')が付けられます。
'+'
フラグが指定され、かつ値が正またはゼロ(もしくは浮動小数点の正のゼロ)である場合、前に'+'
('\u002b')が付けられます。
値がNaNまたは正の無限大の場合、リテラル文字列「NaN」または「Infinity」がそれぞれ出力されます。値が負の無限大の場合、'('
フラグが指定されていると出力は「(Infinity)」になり、そうでない場合は「-Infinity」になります。これらの値のローカライズは行われません。
次の変換をbyte
、Byte
, short
、Short
, int
、Integer
, long
、およびLong
に適用できます。
'd'
| '\u0064' | 引数を10進整数として書式設定します。ローカリゼーション・アルゴリズムが適用されます。
|
'o'
| '\u006f' | 引数を、基数8の整数として書式設定します。ローカリゼーションは適用されません。
xが負の場合、結果は、値に2nを追加して生成された符号なしの値になります。 |
'x'
| '\u0078' | 引数を、基数16の整数として書式設定します。ローカリゼーションは適用されません。
xが負の場合、結果は、値に2nを追加して生成された符号なしの値になります。 |
'X'
| '\u0058' | 'x' の大文字のバリアントです。'x' (存在する場合)およびすべての16進数'a' - 'f' ('\u0061' - '\u0066')を含む、数値を表す文字列全体が大文字に変換されます。
|
変換が'o'
、'x'
、または'X'
で、フラグ'#'
と'0'
の両方のフラグが指定されている場合、結果には基数指示子(8進の場合は'0'
、16進の場合は"0x"
または"0X"
)、いくつかのゼロ(widthに基づく)、および値が含まれます。
'-'
フラグが指定されていない場合、符号の前に空白がパディングされます。
次のフラグが、数値整数変換に適用されます。
'+'
| '\u002b' | 出力で、正の数すべてに正の符号を含める必要があります。このフラグが指定されていない場合、負の値にのみ符号が含められます。
フラグ |
' ' | '\u0020' | 出力で、負以外の値に余分な空白('\u0020')を1つ含める必要があります。
フラグ |
'0'
| '\u0030' | 出力で、次の符号または基数指示子に続く最小フィールド幅の先頭にゼロをパディングする必要があります(NaNまたは無限の変換時を除く)。widthが指定されていない場合は、MissingFormatWidthException がスローされます。
フラグ |
','
| '\u002c' | 出力にロケール固有のグループ区切り文字を含める必要があります。詳細は、ローカリゼーション・アルゴリズムの「グループ」セクションを参照してください。 |
'('
| '\u0028' | 出力で、負の値の先頭に'(' ('\u0028')を、末尾に')' ('\u0029')を付加する必要があります。
|
フラグが指定されていない場合の、デフォルト書式設定は次のとおりです。
width
内で右揃えされる
'-'
('\u002d')で始まる
widthは、出力に書き込まれる最小文字数です。これには、符号、数字、グループ化区切り文字、基数指示子、およびカッコが含まれます。変換後の値の長さがwidthより小さい場合、総文字数がwidthに等しくなるまで出力に空白('\u0020')がパディングされます。デフォルトでは、左側にパディングされます。'-'
フラグが指定された場合、右側にパディングされます。widthが指定されていない場合、最小値は存在しません。
precisionは適用できません。precisionが指定された場合は、IllegalFormatPrecisionException
がスローされます。
次の変換をBigInteger
に適用できます。
'd'
| '\u0064' | 出力を10進整数として書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
|
'o'
| '\u006f' | 出力を、基数8の整数として書式設定する必要があります。ローカリゼーションは適用されません。
xが負の場合、結果は xが正またはゼロで、 |
'x'
| '\u0078' | 出力を、基数16の整数として書式設定する必要があります。ローカリゼーションは適用されません。
xが負の場合、結果は xが正またはゼロで、 |
'X'
| '\u0058' | 'x' の大文字のバリアントです。'x' (存在する場合)およびすべての16進数'a' - 'f' ('\u0061' - '\u0066')を含む、数値を表す文字列全体が大文字に変換されます。
|
変換が'o'
、'x'
、または'X'
で、フラグ'#'
と'0'
の両方のフラグが指定されている場合、結果には基底指示子(8進の場合は'0'
、16進の場合は"0x"
または"0X"
)、いくつかのゼロ(widthに基づく)、および値が含まれます。
'0'
フラグが指定され、値が負の場合、符号の後ろにゼロがパディングされます。
'-'
フラグが指定されていない場合、符号の前に空白がパディングされます。
Byte、Short、Integer、およびLong用に定義されたすべてのフラグが適用されます。フラグが指定されない場合のデフォルト動作は、Byte、Short、Integer、およびLongのデフォルト動作と同じです。
widthの仕様は、Byte、Short、Integer、およびLongで定義された仕様と同じです。
precisionは適用できません。precisionが指定された場合は、IllegalFormatPrecisionException
がスローされます。
次の変換をfloat
、Float
、double
、およびDouble
に適用できます。
'e'
| '\u0065' | 出力を浮動小数点表記を使用して書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
絶対値mの書式設定は、値により異なります。 mがNaNまたは無限大の場合、リテラル文字列「NaN」または「Infinity」がそれぞれ出力されます。これらの値のローカライズは行われません。 mが正のゼロまたは負のゼロの場合、指数は そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。符号の書式設定については、ローカリゼーション・アルゴリズムを参照してください。絶対値mの書式設定は、値により異なります。 nを10n <= m < 10n+1などの一意の整数とし、aを1 <= a < 10となるようなmと10nの数学的に正確な商とします。この場合、絶対値は、 結果内のmまたはaの小数部の桁数は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は
|
'E'
| '\u0045' | 'e' の大文字のバリアントです。指数記号は'E' ('\u0045')になります。
|
'g'
| '\u0067' | 一般の科学表記法を使用して出力を書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
precisionの四捨五入処理後の結果として得られる絶対値mの書式設定は、その値により異なります。 mが10-4以上で、10precision未満の場合、それは10進フォーマットで表現されます。 mが10-4未満、あるいは10precision以上の場合、それは浮動小数点表記で表現されます。 mの有効桁数の合計は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は |
'G'
| '\u0047' | 'g' の大文字のバリアントです。
|
'f'
| '\u0066' | 出力を10進フォーマットを使用して書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
結果は、引数の符号および絶対値を表す文字列になります。符号の書式設定については、ローカリゼーション・アルゴリズムを参照してください。絶対値mの書式設定は、値により異なります。 mがNaNまたは無限大の場合、リテラル文字列「NaN」または「Infinity」がそれぞれ出力されます。これらの値のローカライズは行われません。 絶対値の書式は、mの整数部(先頭にゼロが付加されない)、小数点、およびmの小数部を表す1桁以上の10進数が、その順番で表記されたものになります。 結果内のmまたはaの小数部の桁数は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は |
'a'
| '\u0061' | 出力の書式を16進の指数で設定する必要があります。ローカリゼーションは適用されません。
結果は、引数xの符号および絶対値を表す文字列になります。 xが負または負のゼロ値の場合、結果の先頭は xが正または正のゼロ値で、 絶対値mの書式設定は、値により異なります。
|
'A'
| '\u0041' | 'a' の大文字のバリアントです。数値を表す文字列全体が大文字に変換されます。これには、'x' ('\u0078')、'p' ('\u0070')およびすべての16進数'a' - 'f' ('\u0061' - '\u0066')も含まれます。
|
Byte、Short、Integer、およびLong用に定義されたすべてのフラグが適用されます。
'#'
フラグが指定されている場合、小数点が常に存在します。
フラグが指定されていない場合の、デフォルト書式設定は次のとおりです。
width
内で右揃えされる
'-'
で始まる
widthは、出力に書き込まれる最小文字数です。これには、符号、数字、グループ化区切り文字、10進数区切り文字、指数記号、基数指示子、カッコ、およびInfinityとNaNを規定どおりに表す文字列が含まれます。変換後の値の長さがwidthより小さい場合、総文字数がwidthに等しくなるまで出力に空白('\u0020')がパディングされます。デフォルトでは、左側にパディングされます。'-'
フラグが指定された場合、右側にパディングされます。widthが指定されていない場合、最小値は存在しません。
変換が'e'
、'E'
、または'f'
の場合、precisionは小数以下の桁数です。precisionが指定されていない場合、6
であるとみなされます。
変換が'g'
または'G'
の場合は、四捨五入処理後の結果として得られる絶対値の有効桁の合計数です。precisionが指定されていない場合、デフォルト値は6
です。precisionが0
の場合、それは1
になります。
変換が'a'
または'A'
の場合、precisionは基数点以下の16進の桁数になります。precisionが指定されない場合、Double.toHexString(double)
によって返される、すべての桁が出力されます。
次の変換をBigDecimal
に適用できます。
'e'
| '\u0065' | 出力を浮動小数点表記を使用して書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
絶対値mの書式設定は、値により異なります。 mが正のゼロまたは負のゼロの場合、指数は そうでない場合、結果は、引数の符号および絶対値を表す文字列になります。符号の書式設定については、ローカリゼーション・アルゴリズムを参照してください。絶対値mの書式設定は、値により異なります。 nを10n <= m < 10n+1などの一意の整数とし、aを1 <= a < 10となるようなmと10nの数学的に正確な商とします。この場合、絶対値は、 結果内のmまたはaの小数部の桁数は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は |
'E'
| '\u0045' | 'e' の大文字のバリアントです。指数記号は'E' ('\u0045')になります。
|
'g'
| '\u0067' | 一般の科学表記法を使用して出力を書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
precisionの四捨五入処理後の結果として得られる絶対値mの書式設定は、その値により異なります。 mが10-4以上で、10precision未満の場合、それは10進フォーマットで表現されます。 mが10-4未満、あるいは10precision以上の場合、それは浮動小数点表記で表現されます。 mの有効桁数の合計は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は |
'G'
| '\u0047' | 'g' の大文字のバリアントです。
|
'f'
| '\u0066' | 出力を10進フォーマットを使用して書式設定する必要があります。ローカリゼーション・アルゴリズムが適用されます。
結果は、引数の符号および絶対値を表す文字列になります。符号の書式設定については、ローカリゼーション・アルゴリズムを参照してください。絶対値mの書式設定は、値により異なります。 絶対値の書式は、mの整数部(先頭にゼロが付加されない)、小数点、およびmの小数部を表す1桁以上の10進数が、その順番で表記されたものになります。 結果内のmまたはaの小数部の桁数は、precisionと等しくなります。precisionが指定されていない場合、デフォルト値は |
Byte、Short、Integer、およびLong用に定義されたすべてのフラグが適用されます。
'#'
フラグが指定されている場合、小数点が常に存在します。
フラグが指定されない場合のデフォルト動作は、FloatおよびDoubleと同じです。
widthおよびprecisionの仕様は、FloatおよびDoubleで定義された仕様と同じです。
この変換は、long
、Long
、Calendar
、Date
、およびTemporalAccessor
に適用できます
't'
| '\u0074' | 日付および時刻変換文字の接頭辞です。 |
'T'
| '\u0054' | 't' の大文字のバリアントです。
|
次の日付および時刻変換文字の接尾辞が、't'
および'T'
変換用に定義されています。この型は、GNU date
およびPOSIX strftime(3c)
で定義された型に類似していますが完全に同一ではありません。秒内のミリ秒を表す'L'
など、Java固有の機能にアクセスするための追加の変換型が提供されています。
時刻の書式設定では、次の変換文字が使用されます。
'H'
| '\u0048' | 24時間制の時。必要に応じて0を先頭に追加し、2桁で表現します(00 - 23 )。00 は深夜零時に対応します。
|
'I'
| '\u0049' | 12時間制の時。必要に応じて0を先頭に追加し、2桁で表現します(01 - 12 )。01 は1時(午前または午後)に対応します。
|
'k'
| '\u006b' | 24時間制の時(0 - 23 )。0 は深夜零時に対応します。
|
'l'
| '\u006c' | 12時間制の時(1 - 12 )。1 は1時(午前または午後)に対応します。
|
'M'
| '\u004d' | 分。必要に応じて0を先頭に追加し、2桁で表現します(00 - 59 )。
|
'S'
| '\u0053' | 秒。必要に応じて0を先頭に追加し、2桁で表現します(00 - 60 )。「60 」はうるう年での秒のサポートに必要な特殊な値です。
|
'L'
| '\u004c' | ミリ秒。必要に応じて0を先頭に追加し、3桁で表現します(000 - 999 )。
|
'N'
| '\u004e' | ナノ秒。必要に応じて0を先頭に追加し、9桁で表現します(000000000 - 999999999 )。この値の精度は、背後のオペレーティング・システムまたはハードウェアの解像度により制限されます。
|
'p'
| '\u0070' | ロケール固有の午前または午後を示す小文字のマーカー(「am 」または「pm 」など)。変換接頭辞の'T' を使用すると、結果は大文字で強制出力されます。('p' は小文字で出力される。これは大文字で出力されるGNUのdate およびPOSIXのstrftime(3c) とは異なる)。
|
'z'
| '\u007a' | RFC 822に準拠した、GMTからの数値タイムゾーン・オフセット(-0800 など)。この値は、必要に応じて夏時間で調整されます。long 、Long 、およびDate の場合、使用されるタイムゾーンは、このJava仮想マシン・インスタンスのデフォルト・タイム・ゾーンです。
|
'Z'
| '\u005a' | タイムゾーンの省略形を表す文字列。この値は、必要に応じて夏時間で調整されます。long 、Long 、およびDate の場合、使用されるタイムゾーンは、このJava仮想マシン・インスタンスのデフォルト・タイム・ゾーンです。Formatterのロケールは、引数のロケール(存在する場合)よりも優先されます。
|
's'
| '\u0073' | 1970年1月1日00:00:00 UTCの元期開始からの秒(Long.MIN_VALUE/1000 からLong.MAX_VALUE/1000 まで)。
|
'Q'
| '\u004f' | 1970年1月1日00:00:00 UTCの元期開始からのミリ秒(Long.MIN_VALUE からLong.MAX_VALUE まで)。この値の精度は、背後のオペレーティング・システムまたはハードウェアの解像度により制限されます。
|
日付の書式設定では、次の変換文字が使用されます。
'B'
| '\u0042' | ロケール固有の月の完全な名前 ("January" 、"February" など)。
|
'b'
| '\u0062' | ロケール固有の月の省略名 ("Jan" 、"Feb" など)。
|
'h'
| '\u0068' | 'b' と同じ。
|
'A'
| '\u0041' | ロケール固有の曜日の完全な名前("Sunday" 、"Monday" など)。
|
'a'
| '\u0061' | ロケール固有の曜日の短縮名("Sun" 、"Mon" など)。
|
'C'
| '\u0043' | 4桁の年を100 で割った値。必要に応じて0を先頭に追加し、2桁で表示します(00 - 99 )
|
'Y'
| '\u0059' | 年。必要に応じて0を先頭に追加し、4桁以上で表現します。たとえば、0092 は、グレゴリオ歴の92 CEと等価です。
|
'y'
| '\u0079' | 年の下2桁。必要に応じて0を先頭に追加します(00 - 99 )。
|
'j'
| '\u006a' | 年の何日目かを表す日。必要に応じて0を先頭に追加し、3桁で表現します。たとえば、グレゴリオ歴の場合、001 - 366 になります。001 は、年の最初の日に対応します。
|
'm'
| '\u006d' | 月。必要に応じて0を先頭に追加し、2桁で表現します(01 - 13 )。「01 」は、年の最初の月です(「13 」は太陰暦のサポートに必要な特殊な値)。
|
'd'
| '\u0064' | 月の何日目かを表す日。必要に応じて0を先頭に追加し、2桁で表現します(01 - 31 )。「01 」は、月の最初の日を表します。
|
'e'
| '\u0065' | 月の何日目かを表す日。最大2桁で表現します(1 - 31 )。「1 」は、月の最初の日を表します。
|
一般の日付/時刻変換の書式設定では、次の変換文字が使用されます。
'R'
| '\u0052' | "%tH:%tM" として24時間制で書式設定された時刻。
|
'T'
| '\u0054' | "%tH:%tM:%tS" として24時間制で書式設定された時刻。
|
'r'
| '\u0072' | "%tI:%tM:%tS %Tp" として12時間制で書式設定された時刻。午前および午後を示すマーカー('%Tp' )の位置はロケールによって異なります。
|
'D'
| '\u0044' | "%tm/%td/%ty" として書式設定された日付。
|
'F'
| '\u0046' | "%tY-%tm-%td" として書式設定されたISO 8601に準拠した日付。
|
'c'
| '\u0063' | "%ta %tb %td %tT %tZ %tY" として書式設定された日付および時間("Sun Jul 20 16:17:00 EDT 1969" など)。
|
一般変換用に定義された'-'
フラグが適用されます。'#'
フラグが指定されている場合は、FormatFlagsConversionMismatchException
がスローされます。
widthは、出力に書き込まれる最小文字数です。変換後の値の長さがwidth
より小さい場合、総文字数がwidthに等しくなるまで出力に空白('\u0020')がパディングされます。デフォルトでは、左側にパディングされます。'-'
フラグが指定された場合、右側にパディングされます。widthが指定されていない場合、最小値は存在しません。
precisionは適用できません。precisionが指定された場合は、IllegalFormatPrecisionException
がスローされます。
この変換に対応する引数はありません。
'%'
| 結果は、リテラル'%' (u0025)になります。
widthは、出力に書き込まれる、 一般変換用に定義された precisionは適用できません。precisionが指定された場合は、 |
この変換に対応する引数はありません。
'n'
| プラットフォーム固有の行区切り文字で、System.getProperty("line.separator") により返されます。
|
flags、width、およびprecisionは適用できません。これらが指定された場合、IllegalFormatFlagsException
, IllegalFormatWidthException
、およびIllegalFormatPrecisionException
がそれぞれスローされます。
書式指示子は、次の3つの方法で引数を参照できます。
1$
」、2番目の引数は「2$
」で参照されます。引数は、複数回参照できます。
たとえば、
formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s", "a", "b", "c", "d") // -> "d c b a d c b a"
'<'
('\u003c')フラグが含まれる場合に使用します。このフラグが含まれていると、以前の書式指示子の引数が再利用されます。以前の引数が存在しない場合、MissingFormatArgumentException
がスローされます。
formatter.format("%s %s %<s %<s", "a", "b", "c", "d") // -> "a b b b" // "c" and "d" are ignored because they are not referenced
'<'
フラグも含まれない場合に使用します。通常のインデックス指定を使用する各書式指示子には、引数リストに対する暗黙の順次インデックスが割り当てられます。
formatter.format("%s %s %s %s", "a", "b", "c", "d") // -> "a b c d"
1つの書式文字列ですべてのインデックス指定を使用できます。次に例を示します。
formatter.format("%2$s %s %<s %s", "a", "b", "c", "d") // -> "b a a b" // "c" and "d" are ignored because they are not referenced
引数の最大数は、Java(tm)仮想マシン仕様で定義されているJava配列の最大次元により制限されます。引数インデックスが利用可能な引数に対応していない場合、MissingFormatArgumentException
がスローされます。
書式指示子よりも引数が多い場合、余分な引数は無視されます。
特に指定されていないかぎり、null
引数をこのクラスのメソッドまたはコンストラクタに渡すと、NullPointerException
がスローされます。
修飾子と型 | クラスと説明 |
---|---|
static class |
Formatter.BigDecimalLayoutForm
BigDecimal の書式設定用の列挙型です。 |
コンストラクタと説明 |
---|
Formatter()
新しいフォーマッタを構築します。
|
Formatter(Appendable a)
指定された宛先を持つ新しいフォーマッタを構築します。
|
Formatter(Appendable a, Locale l)
指定された宛先およびロケールを持つ新しいフォーマッタを構築します。
|
Formatter(File file)
指定されたファイルを持つ新しいフォーマッタを構築します。
|
Formatter(File file, String csn)
指定されたファイルおよび文字セットを持つ新しいフォーマッタを構築します。
|
Formatter(File file, String csn, Locale l)
指定されたファイル、文字セット、およびロケールを持つ新しいフォーマッタを構築します。
|
Formatter(Locale l)
指定されたロケールを持つ新しいフォーマッタを構築します。
|
Formatter(OutputStream os)
指定された出力ストリームを持つ新しいフォーマッタを構築します。
|
Formatter(OutputStream os, String csn)
指定された出力ストリームおよび文字セットを持つ新しいフォーマッタを構築します。
|
Formatter(OutputStream os, String csn, Locale l)
指定された出力ストリーム、文字セット、およびロケールを持つ新しいフォーマッタを構築します。
|
Formatter(PrintStream ps)
指定された出力ストリームを持つ新しいフォーマッタを構築します。
|
Formatter(String fileName)
指定されたファイル名を持つ新しいフォーマッタを構築します。
|
Formatter(String fileName, String csn)
指定されたファイル名および文字セットを持つ新しいフォーマッタを構築します。
|
Formatter(String fileName, String csn, Locale l)
指定されたファイル名、文字セット、およびロケールを持つ新しいフォーマッタを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
このフォーマッタを閉じます。
|
void |
flush()
このフォーマッタをフラッシュします。
|
Formatter |
format(Locale l, String format, Object... args)
指定されたロケール、書式文字列、および引数を使用して、書式付き文字列をこのオブジェクトの宛先に書き込みます。
|
Formatter |
format(String format, Object... args)
指定された書式文字列および引数を使用して、書式付き文字列をこのオブジェクトの宛先に書き込みます。
|
IOException |
ioException()
このフォーマッタの
Appendable により最後にスローされたIOException 返します。 |
Locale |
locale()
このフォーマッタを構築することで設定されたロケールを返します。
|
Appendable |
out()
出力先を返します。
|
String |
toString()
出力先に対して
toString() を呼び出した結果を返します。 |
public Formatter()
書式付き出力の宛先は、StringBuilder
です。これは、out()
を呼び出すことで取得できます。また、toString()
を呼び出すことで、現在の内容を文字列に変換できます。使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
public Formatter(Appendable a)
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
a
- 書式付き出力の宛先。a
がnull
の場合、StringBuilder
が作成される。public Formatter(Locale l)
書式付き出力の宛先は、StringBuilder
です。これは、out()
を呼び出すことで取得できます。また、toString()
を呼び出すことで、現在の内容を文字列に変換できます。
l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。public Formatter(Appendable a, Locale l)
a
- 書式付き出力の宛先。a
がnull
の場合、StringBuilder
が作成される。l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。public Formatter(String fileName) throws FileNotFoundException
使用される文字セットは、このJava仮想マシン・インスタンスのデフォルト文字セットです。
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
fileName
- このフォーマッタの宛先として使用されるファイルの名前。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。SecurityException
- セキュリティ・マネージャが存在し、checkWrite(fileName)
がファイルへの書込みアクセスを拒否した場合FileNotFoundException
- 指定されたファイル名が既存の書込み可能な通常ファイルを示さず、新規の通常ファイルをその名前で作成できない場合、またはファイルのオープンまたは作成中にほかのエラーが発生した場合public Formatter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
fileName
- このフォーマッタの宛先として使用されるファイルの名前。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。csn
- サポートされているcharsetの名前FileNotFoundException
- 指定されたファイル名が既存の書込み可能な通常ファイルを示さず、新規の通常ファイルをその名前で作成できない場合、またはファイルのオープンまたは作成中にほかのエラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、checkWrite(fileName)
がファイルへの書込みアクセスを拒否した場合UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Formatter(String fileName, String csn, Locale l) throws FileNotFoundException, UnsupportedEncodingException
fileName
- このフォーマッタの宛先として使用されるファイルの名前。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。csn
- サポートされているcharsetの名前l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。FileNotFoundException
- 指定されたファイル名が既存の書込み可能な通常ファイルを示さず、新規の通常ファイルをその名前で作成できない場合、またはファイルのオープンまたは作成中にほかのエラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、checkWrite(fileName)
がファイルへの書込みアクセスを拒否した場合UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Formatter(File file) throws FileNotFoundException
使用される文字セットは、このJava仮想マシン・インスタンスのデフォルト文字セットです。
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
file
- このフォーマッタの宛先として使用されるファイル。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。SecurityException
- セキュリティ・マネージャが存在し、checkWrite(file.getPath())
がファイルへの書込みアクセスを拒否した場合FileNotFoundException
- 指定されたファイル・オブジェクトが既存のファイルを示さない場合、書込み可能な通常ファイルおよび新規の通常ファイルがその名前で作成できない場合、またはファイルのオープンまたは作成中にその他のエラーが発生した場合public Formatter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
file
- このフォーマッタの宛先として使用されるファイル。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。csn
- サポートされているcharsetの名前FileNotFoundException
- 指定されたファイル・オブジェクトが既存のファイルを示さない場合、書込み可能な通常ファイルおよび新規の通常ファイルがその名前で作成できない場合、またはファイルのオープンまたは作成中にその他のエラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、checkWrite(file.getPath())
がファイルへの書込みアクセスを拒否した場合UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Formatter(File file, String csn, Locale l) throws FileNotFoundException, UnsupportedEncodingException
file
- このフォーマッタの宛先として使用されるファイル。ファイルが存在する場合は、サイズ0に切り詰められる。そうでない場合は、新規ファイルが作成される。出力はファイルに書き込まれ、バッファに格納される。csn
- サポートされているcharsetの名前l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。FileNotFoundException
- 指定されたファイル・オブジェクトが既存のファイルを示さない場合、書込み可能な通常ファイルおよび新規の通常ファイルがその名前で作成できない場合、またはファイルのオープンまたは作成中にその他のエラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、checkWrite(file.getPath())
がファイルへの書込みアクセスを拒否した場合UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Formatter(PrintStream ps)
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
文字は指定されたPrintStream
オブジェクトに書き込まれるため、このオブジェクトの文字セットを使用してエンコードされます。
ps
- このフォーマッタの宛先として使用されるストリーム。public Formatter(OutputStream os)
使用される文字セットは、このJava仮想マシン・インスタンスのデフォルト文字セットです。
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
os
- このフォーマッタの宛先として使用される出力ストリーム。出力はバッファに入れられる。public Formatter(OutputStream os, String csn) throws UnsupportedEncodingException
使用されるロケールは、このJava仮想マシン・インスタンスの書式設定用のデフォルト・ロケールです。
os
- このフォーマッタの宛先として使用される出力ストリーム。出力はバッファに入れられる。csn
- サポートされているcharsetの名前UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Formatter(OutputStream os, String csn, Locale l) throws UnsupportedEncodingException
os
- このフォーマッタの宛先として使用される出力ストリーム。出力はバッファに入れられる。csn
- サポートされているcharsetの名前l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合public Locale locale()
ロケール引数を持つこのオブジェクトのformat
メソッドはこの値を変更しません。
null
、そうでない場合はロケールFormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合public Appendable out()
FormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合public String toString()
toString()
を呼び出した結果を返します。たとえば、次のコードによりテキストがStringBuilder
内で書式設定されて、結果の文字列が取得されます。
Formatter f = new Formatter(); f.format("Last reboot at %tc", lastRebootDate); String s = f.toString(); // -> s == "Last reboot at Sat Jan 01 00:00:00 PST 2000"
このメソッド呼出しの動作は、次の呼出しの動作とまったく同一です。
out().toString()
Appendable
に対するtoString
の指定に応じて、返される文字列に宛先に書き込まれた文字が含まれることも、含まれないこともあります。たとえば、通常、バッファはtoString()
の内容を返しますが、ストリームではデータが破棄されるためにそれができません。
toString
、クラス: Object
toString()
を呼び出した結果FormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合public void flush()
Flushable
インタフェースを実装した場合、そのflush
メソッドが呼び出されます。
フォーマッタのフラッシュにより、宛先でバッファに入れられた任意の出力が基になるストリームに書き込まれます。
flush
、インタフェース: Flushable
FormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合public void close()
Closeable
インタフェースを実装した場合、そのclose
メソッドが呼び出されます。
フォーマッタを閉じると、それが保持していたリソース(開いていたファイルなど)を解放できます。フォーマッタがすでに閉じられている場合、このメソッドを呼び出しても何の効果もありません。
このフォーマッタを閉じたあとで、このフォーマッタ内のioException()
以外のメソッドを呼び出そうとすると、FormatterClosedException
がスローされます。
close
、インタフェース: Closeable
close
、インタフェース: AutoCloseable
public IOException ioException()
Appendable
により最後にスローされたIOException
返します。
宛先のappend()
メソッドがまったくIOException
をスローしない場合、このメソッドは常にnull
を返します。
null
。public Formatter format(String format, Object... args)
format
- 「書式文字列の構文」で説明した書式文字列。args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の最大数は、Java(tm)仮想マシン仕様で定義されているJava配列の最大次元により制限される。IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。FormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合public Formatter format(Locale l, String format, Object... args)
l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。構築時に設定されたこのオブジェクトのロケールがこれによって変更されることはない。format
- 「書式文字列の構文」で説明した書式文字列args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の最大数は、Java(tm)仮想マシン仕様で定義されているJava配列の最大次元により制限される。IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。FormatterClosedException
- close()
メソッドを呼び出すことで、このフォーマッタが閉じられた場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.