Formatter クラス

定義

printf スタイルの書式指定文字列のインタープリター。

[Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)]
public sealed class Formatter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.IO.IFlushable
[<Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)>]
type Formatter = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IFlushable
継承
Formatter
属性
実装

注釈

printf スタイルの書式指定文字列のインタープリター。 このクラスは、レイアウトの理由と配置、数値、文字列、日付/時刻データの一般的な形式、ロケール固有の出力をサポートします。 、java.math.BigDecimal BigDecimalCalendar、 などのbyte一般的な Java 型がサポートされています。 インターフェイスを通じて、任意のユーザー型の制限付き書式設定のカスタマイズが Formattable 提供されます。

フォーマッタは、マルチスレッド アクセスに対して安全であるとは限りません。 スレッド セーフは省略可能であり、このクラスのメソッドのユーザーの責任です。

Java 言語の書式設定された印刷は、C の printfに大きく影響されます。 書式指定文字列は C に似ていますが、Java 言語に対応し、その機能の一部を利用するためにいくつかのカスタマイズが行われています。 また、Java の書式設定は C よりも厳密です。たとえば、変換がフラグと互換性がない場合、例外がスローされます。 C では、適用できないフラグは自動的に無視されます。 したがって、書式指定文字列は C プログラマが認識できるように意図されていますが、必ずしも C のプログラマと完全に互換性があるわけではありません。

予想される使用方法の例:

<blockquote>

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")
              // -&gt; " 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);
              // -&gt; "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);
              // -&gt; "Amount gained or lost since last statement: $ (6,217.58)"

</blockquote>

一般的な書式設定要求の便利なメソッドは、次の呼び出しで示すように存在します。

<blockquote>

// Writes a formatted string to System.out.
              System.out.format("Local time: %tT", Calendar.getInstance());
              // -&gt; "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());
              // -&gt; "Unable to open file 'food': No such file or directory"

</blockquote>

C の と同様に sprintf(3)、文字列は静的メソッド String#format(String,Object...) String.formatを使用して書式設定できます。

<blockquote>

// 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);
              // -&gt; s == "Duke's Birthday: May 23, 1995"

</blockquote>

<h3>"org">Organization</h3>

この仕様は 2 つのセクションに分かれています。 最初のセクション「概要」では、基本的な書式設定の概念について説明します。 このセクションは、他のプログラミング言語で書式設定された印刷に慣れているユーザーを対象としています。 2 番目のセクション 「詳細」では、特定の実装の詳細について説明します。 これは、書式設定の動作をより正確に指定する必要があるユーザーを対象としています。

<h3>"summary">Summary</h3>

このセクションでは、書式設定の概念の概要について簡単に説明します。 正確な動作の詳細については、「詳細」セクションを参照してください。

<h4>"syntax">Format String Syntax</h4>

書式設定された出力を生成するすべてのメソッドには、 書式指定文字列引数リストが必要です。 書式指定文字列は、 String 固定テキストと 1 つ以上の埋め込み 書式指定子を含む可能性がある です。 次の例を確認してください。

<blockquote>

Calendar c = ...;
              String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

</blockquote>

この書式指定文字列は、 メソッドの最初の format 引数です。 これには、引数の処理方法とテキスト内の挿入場所を示す 3 つの書式指定子 "%1$tm"、"%1$te"、および "%1$tY" が含まれています。 書式指定文字列の残りの部分は、その他のスペースや句読点を含む "Dukes Birthday: " 固定テキストです。

引数リストは、書式指定文字列の後に メソッドに渡されるすべての引数で構成されます。 上記の例では、引数リストのサイズは 1 で、 オブジェクト cjava.util.Calendar Calendar構成されています。

<ul>

<li> 一般型、文字型、および数値型の書式指定子には、次の構文があります。

<blockquote>

%[argument_index$][flags][width][.precision]conversion

</blockquote>

省略可能 なargument_index は、引数リスト内の引数の位置を示す 10 進数の整数です。 最初の引数は "1$"、2 番目の引数は "2$" などによって参照されます。

省略可能な フラグ は、出力形式を変更する文字のセットです。 有効なフラグのセットは、変換によって異なります。

オプションの は、出力に書き込まれる最小文字数を示す正の 10 進整数です。

省略可能 な有効桁数 は、通常、文字数を制限するために使用される負以外の 10 進整数です。 具体的な動作は、変換によって異なります。

必要な 変換 は、引数の書式設定方法を示す文字です。 指定された引数に対する有効な変換のセットは、引数のデータ型によって異なります。

<li> 日付と時刻を表すために使用される型の書式指定子には、次の構文があります。

<blockquote>

%[argument_index$][flags][width]conversion

</blockquote>

省略可能な argument_indexフラグ は上記のように定義されています。

必要な 変換 は 2 文字シーケンスです。 最初の文字は 't' または 'T'です。 2 番目の文字は、使用する形式を示します。 これらの文字は GNU および POSIX strftime(3c)date定義されているものに似ていますが、完全には同じではありません。

<li> 引数に対応しない書式指定子の構文は次のとおりです。

<blockquote>

%[flags][width]conversion

</blockquote>

省略可能な フラグ は、上記のように定義されています。

必要な 変換 は、出力に挿入するコンテンツを示す文字です。

</ul>

<h4> 変換 </h4>

変換は、次のカテゴリに分類されます。

<Ol>

<li><b>General</b> - 任意の引数型に適用できます

<li><b>Character</b> - Unicode 文字charを表す基本型 (、、CharacterbyteByteshortおよび Short) に適用できます。 この変換は、型intに適用することもでき、Integerli b>Numeric</b をtrue<><返す場合はCharacter#isValidCodePoint>

<Ol>

<li><b>Integral/b> - Java の<整数型 byte(、、ByteintShortshortおよび java.math.BigInteger BigIntegerlongLongIntegerに適用できます(ただし、または Characterではありません)char

<li><b>浮動小数点</b> - Java 浮動小数点型 (、FloatdoubleDoubleおよび<java.math.BigDecimal BigDecimal /ol) floatに適用できます>

<li>b 日付/時刻</b> - 日付または時刻をエンコードできる Java 型に適用できます: longLongDateCalendar、li>TemporalAccessor TemporalAccessor<< b>Percent</b> - リテラル'%'を生成します ()'&#92;u0025'><

<li><b>行区切り記号</b> - プラットフォーム固有の行区切り記号を生成します

</Ol>

引数 argnullが の場合、特に指定がない限り、カテゴリ GeneralCharacterNumbericIntegralDate/Time の変換の場合、結果は "null" になります。

次の表に、サポートされている変換の概要を示します。 大文字文字 (、'B''X''E''A''C''S''G''H'および) で示される変換は、対応する小文字の変換文字の変換と'T'同じですが、結果は優先java.util.Locale Localeされる の規則に従って大文字に変換される点が異なります。 インスタンスの構築時、またはそのメソッド呼び出しのパラメーターとして明示的なロケールが指定されていない場合は、 java.util.Locale.Category#FORMAT default locale が使用されます。

<table class="striped"><キャプション style="display:none">genConv</キャプション<>thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style="vertical-align:bottom"> Argument Category <th scope="col" style="vertical-align:bottom"> Description </thead<>tbody><tr><th scope="row" style="vertical-align:top">'b', 'B'<td style="vertical-align:top"> general <td> 引数 argnullの場合、結果は "false" になります。 arg が または Booleanboolean場合、結果は によってString#valueOf(boolean) String.valueOf(arg)返される文字列になります。 それ以外の場合、結果は "true" になります。

<tr><th scope="row" style="vertical-align:top">'h', 'H'<td style="vertical-align:top"> general <td> この結果は、 を Integer.toHexString(arg.hashCode())呼び出すことによって取得されます。

<tr><th scope="row" style="vertical-align:top">'s', 'S'<td style="vertical-align:top"> general <td>If arg implements Formattable, then Formattable#formatTo arg.formatTo is invoked. それ以外の場合、結果は を arg.toString()呼び出すことによって取得されます。

<tr><th scope="row" style="vertical-align:top">'c', 'C'<td style="vertical-align:top"> character <td> 結果は Unicode 文字です

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top"> 整数 <td> 結果は 10 進整数として書式設定されます

<tr><th scope="row" style="vertical-align:top">'o'<td style="vertical-align:top"> 整数 <td> 結果は 8 進数として書式設定されます

<tr><th scope="row" style="vertical-align:top">'x', 'X'<td style="vertical-align:top"> 整数 <td> 結果は 16 進数の整数として書式設定されます

<tr><th scope="row" style="vertical-align:top">'e', 'E'<td style="vertical-align:top"> 浮動小数点 <td> 結果は、コンピューター化された指数表記で 10 進数として書式設定されます

<tr><th scope="row" style="vertical-align:top">'f'<td style="vertical-align:top"> 浮動小数点 <td> 結果は 10 進数として書式設定されます

<tr><th scope="row" style="vertical-align:top">'g', 'G'<td style="vertical-align:top"> 浮動小数点 <td> 結果は、丸め後の精度と値に応じて、コンピューター化された指数表記または 10 進形式を使用して書式設定されます。

<tr><th scope="row" style="vertical-align:top">'a', 'A'<td style="vertical-align:top"> 浮動小数点 <td> 結果は、仮数と指数を持つ 16 進数の浮動小数点数として書式設定されます。 この変換は、後者が<浮動小数点引数カテゴリにあるにもかかわらず、型でサポートされる BigDecimal b>not</b> です。

<tr><th scope="row" style="vertical-align:top">'t', 'T'<td style="vertical-align:top"> date/time <td> Prefix for date and time conversion characters. 「日付/時刻の変換」を参照してください。

<tr><th scope="row" style="vertical-align:top">'%'<td style="vertical-align:top"> percent <td> 結果はリテラル '%' ()'&#92;u0025'

<tr><th scope="row" style="vertical-align:top">'n'<td style="vertical-align:top"> 行区切り記号 <td> 結果はプラットフォーム固有の行区切り記号です

</tbody></table>

明示的に変換として定義されていない文字は無効であり、将来の拡張機能用に予約されています。

<h4>"dt">Date/Time Conversions</h4>

および 変換には、次の日付と時刻の変換サフィックス文字が't''T'定義されています。 型は GNU および POSIX strftime(3c)date定義されているものと似ていますが、完全には同じではありません。 Java 固有の機能にアクセスするための追加の変換型が用意されています (例: 'L' ミリ秒単位)。

時刻の書式設定には、次の変換文字が使用されます。

<table class="striped">キャプション style="display:none">time</キャプション<>tbody<>tr><th scope="row" style="vertical-align:top">'H'<td> Hour of the day for the 24-hour, formatted as a leading zero as necessary. 00 - 23<

<tr><th scope="row" style="vertical-align:top">'I'<td> Hour for the 12-hour clock, formatted as two digits with a leading zero as necessary, e. 01 - 12

<tr><th scope="row" style="vertical-align:top">'k'<td> Hour of the day for the 24-hour clock, つまり . 0 - 23

<tr><th scope="row" style="vertical-align:top">'l'<td> Hour for the 12-hour clock, すなわち . 1 - 12

<tr><th scope="row" style="vertical-align:top">'M'<td> Minute は、必要に応じて先頭に 0 を付けた 2 桁の数字 (つまり) として書式設定された 1 時間以内です。 00 - 59

<tr><th scope="row" style="vertical-align:top">'S'<td> Seconds within the minute, formatted as two digits with a leading zero as required, つまり 00 - 60 ("60" is a special value required to support leap seconds).

<tr><th scope="row" style="vertical-align:top">'L'<td> Millisecond は、必要に応じて先頭に 0 を付けた 3 桁の数字 (つまり) として書式設定された 2 番目の内のミリ秒です。 000 - 999

<tr><th scope="row" style="vertical-align:top">'N'<td> Nanosecond within the second, formatted as nine digits with leading zeros as necessary, すなわち . 000000000 - 999999999

<tr><th scope="row" style="vertical-align:top">'p'<td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, e.g."am または "pm" です。 変換プレフィックス 'T' を使用すると、この出力が大文字に強制されます。

<tr><th scope="row" style="vertical-align:top">'z'<td>RFC 822 style GMT からの数値タイム ゾーン オフセット (例: -0800)。 この値は、夏時間の必要に応じて調整されます。 、longLong、および Date で使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。

<tr><th scope="row" style="vertical-align:top">'Z'<td> タイム ゾーンの省略形を表す文字列。 この値は、夏時間の必要に応じて調整されます。 、longLong、および Date で使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。 フォーマッタのロケールは、引数のロケール (存在する場合) よりも優先されます。

<tr><th scope="row" style="vertical-align:top">'s'<td> Seconds since the beginning of the epoch starting at 1 January 1970 00:00:00 UTC, つまり Long.MIN_VALUE/1000 to .Long.MAX_VALUE/1000

<tr><th scope="row" style="vertical-align:top">'Q'<td> Milliseconds since the beginning of the epoch starting at 1 January 1970 00:00:00 UTC, つまり Long.MIN_VALUE to .Long.MAX_VALUE

</tbody></table>

日付の書式設定には、次の変換文字が使用されます。

<table class="striped"><キャプション style="display:none">date</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'B'<td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, 例: "January", . "February"

<tr><th scope="row" style="vertical-align:top">'b'<td> Locale 固有の java.text.DateFormatSymbols#getShortMonths の省略された月名 (例: "Jan"、 )。 "Feb"

<tr><th scope="row" style="vertical-align:top">'h'<td> と同じです。'b'

<tr><th scope="row" style="vertical-align:top"><'A'td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, 例: "Sunday""Monday"<tr><th scope="row" style="vertical-align:top">'a'<td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, 例: "Sun", "Mon"<tr><th scope="row" style="vertical-align:top"'C'<>td> 4 桁年で除算100は、必要に応じて先頭に 0 が付いた 2 桁の数字 (tr 00 - 99><<th scope="row" style="vertical-align:top">'Y'<td> Year) で、必要に応じて先頭にゼロが付いた 4 桁以上の数字として書式設定されます。たとえば0092、グレゴリオ暦の CE と等しくなります。92

<tr><th scope="row" style="vertical-align:top">'y'<td> 年の最後の 2 桁(必要に応じて先頭のゼロで書式設定されます)、つまり。 00 - 99

<tr><th scope="row" style="vertical-align:top">'j'<td> Day of year, formatted as three digits with leading zeros as necessary, 例: 001 - 366 Gregorian calendar.

<tr><th scope="row" style="vertical-align:top">'m'<td> Month, formatted as two digits with leading zeros as necessary, すなわち . 01 - 13

<tr><th scope="row" style="vertical-align:top">'d'<td> Day of month, formatted as two digits with leading zeros as necessary, e.e. 01 - 31<tr><th scope="row" style="vertical-align:top">'e'<td> Day of month, formatted as two digits, つまり . 1 - 31

</tbody></table>

一般的な日付/時刻合成の書式設定には、次の変換文字が使用されます。

<table class="striped"><キャプション style="display:none">composites</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top"><'R'td> Time formatted for the 24-hour clock as "%tH:%tM"<tr><th scope="row" style="vertical-align:top"'T'<>td> Time formatted for the 24-hour clock as ."%tH:%tM:%tS"

<tr><th scope="row" style="vertical-align:top">'r'<td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp" 午前または午後のマーカー ('%Tp') の場所はロケールに依存する場合があります。

<tr><th scope="row" style="vertical-align:top">'D'<td> Date が として "%tm/%td/%ty"書式設定されました。

<tr><th scope="row" style="vertical-align:top">'F'<td>ISO 8601 complete date formatted as ."%tY-%tm-%td"

<tr><th scope="row" style="vertical-align:top">'c'<td> Date and time formatted as "%ta %tb %td %tT %tZ %tY", 例: . "Sun Jul 20 16:17:00 EDT 1969"

</tbody></table>

日付/時刻変換サフィックスとして明示的に定義されていない文字は無効であり、将来の拡張機能用に予約されています。

<h4> フラグ </h4>

次の表は、サポートされているフラグをまとめたものです。 y は、指定された引数型に対してフラグがサポートされていることを意味します。

<table class="striped"><キャプション style="display:none">genConv</キャプション<>thead><tr><th scope="col" style="vertical-align:bottom"> Flag <th scope="col" style="vertical-align:bottom"> General <th scope="col" style="vertical-align:bottom" Character <th scope="col"> style="vertical-align:bottom"> Integral <th scope="col" style="vertical-align:bottom"> Floating Point <th scope="col" style="vertical-align:bottom"> Date/Time <th scope="col" style="vertical-align:bottom"> Description </thead><tbody><tr><th scope="row"> '-' <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td> 結果は左揃えになります。

<tr><th scope="row"> '#' <td style="text-align:center; vertical-align:top"> y<sup>1</sup><td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>3</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 結果は変換依存の代替フォームを使用する必要がある

<tr><th scope="row"> '+' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup><td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 結果には常に符号が含まれます

<tr><th scope="row"> '  ' <td style="text-align:center;vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td>

<tr><th scope="row"> '0' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> 結果はゼロ埋め込みになります

<tr><th scope="row"> ',' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>2</sup><td style="text-align:center; vertical-align:top"> y<sup>5</sup<>td style="text-align:center; vertical-align:top"> - <td>結果には、ロケール固有の java.text.DecimalFormatSymbols#getGroupingSeparator グループ区切り文字<tr><th scope="row"> '(' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y<sup>5</sup><tdstyle="text-align:center"> - <td> 結果は負の数値をかっこで囲みます

</tbody></table>

<sup>1</sup> の定義 Formattableに依存します。

<sup>2</sup>'d' 変換専用。

<sup>3</sup>:、'o''x'、および 'X' の変換の場合のみ。

<sup>4/sup>: 'd''o'、、'x'、、および 'X'java.math.BigInteger BigInteger適用または'd'適用byteされる、ByteshortShortint、および longLongIntegerの変換。<

<sup>5</sup>:、'e''E'、、'f''g'、および 'G' の変換の場合のみ。

フラグとして明示的に定義されていない文字は無効であり、将来の拡張機能用に予約されています。

<h4> Width </h4>

幅は、出力に書き込まれる最小文字数です。 行区切り記号の変換では、幅は適用されません。指定された場合は、例外がスローされます。

<h4> Precision </h4>

一般的な引数型の場合、有効桁数は出力に書き込まれる最大文字数です。

浮動小数点変換 'a'の場合、、 'A''e''E'、および 'f' 有効桁数は、基数ポイントの後の桁数です。 変換 'g' が または 'G'の場合、精度は丸めた後の結果の大きさの合計桁数です。

文字、整数、および日付/時刻の引数型とパーセントおよび行区切り記号の変換の場合、有効桁数は適用されません。有効桁数が指定されている場合は、例外がスローされます。

<h4> 引数インデックス </h4>

引数インデックスは、引数リスト内の引数の位置を示す 10 進整数です。 最初の引数は "1$"、2 番目の引数は "2$" などによって参照されます。

位置によって引数を参照するもう 1 つの方法は、 ('&#92;u003c') フラグを'<'使用することです。これにより、前の書式指定子の引数が再利用されます。 たとえば、次の 2 つのステートメントは同じ文字列を生成します。

<blockquote>

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 %&lt;te,%&lt;tY", c);

</blockquote>

<hr><h3>"detail">Details</h3>

このセクションでは、条件と例外、サポートされているデータ型、ローカライズ、フラグ、変換、データ型間の相互作用など、書式設定の動作の詳細を提供することを目的としています。 書式設定の概念の概要については、「概要」を参照してください。

変換、日付/時刻変換サフィックス、またはフラグとして明示的に定義されていない文字は無効であり、将来の拡張機能用に予約されています。 このような文字を書式指定文字列で使用すると、 UnknownFormatConversionException または UnknownFormatFlagsException がスローされます。

書式指定子に無効な値を持つ幅または有効桁数が含まれている場合、またはサポートされていない場合は、 IllegalFormatWidthException または IllegalFormatPrecisionException がそれぞれスローされます。

書式指定子に、対応する引数に適用できない変換文字が含まれている場合は、 IllegalFormatConversionException がスローされます。

指定されたすべての例外は、 メソッドとformatFormatter、 などのString#format(String,Object...) String.formatjava.io.PrintStream#printf(String,Object...) PrintStream.printf便利なメソッドによってformatスローされる場合があります。

引数 argnullが の場合、特に指定がない限り、カテゴリ GeneralCharacterNumbericIntegralおよび Date/Time の変換の場合、結果は "null" になります。

大文字 (つまり'B'、、'H'、、、'C''S''E''G''A''X') で示される変換は、対応する小文字の変換文字の変換と'T'同じですが、結果は、一般的java.util.Locale Localeな の規則に従って大文字に変換される点が異なります。 インスタンスの構築時、またはそのメソッド呼び出しのパラメーターとして明示的なロケールが指定されていない場合は、 java.util.Locale.Category#FORMAT default locale が使用されます。

<h4>"dgen">General</h4>

次の一般的な変換は、任意の引数の型に適用できます。

<table class="striped"><キャプション style="display:none">dgConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'b'<td style="vertical-align:top"><'&#92;u0062'td> によって返される Boolean#toString(boolean)"true" または "false" のいずれかを生成します。

引数が の null場合、結果は "false" になります。 引数が または Booleanboolean場合、結果は によってString#valueOf(boolean) String.valueOf()返される文字列になります。 それ以外の場合、結果は "true" になります。

フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'B'td style="vertical-align:top">'&#92;u0042'<td> の大文字の'b'バリアント。

<tr><th scope="row" style="vertical-align:top">'h'<td style="vertical-align:top">'&#92;u0068'<td> オブジェクトのハッシュ コード値を表す文字列を生成します。

結果は、 を呼び出すことによって取得されます Integer.toHexString(arg.hashCode())

フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'H'td style="vertical-align:top">'&#92;u0048'<td> の大文字の'h'バリアント。

<tr><th scope="row" style="vertical-align:top">'s'<td style="vertical-align:top">'&#92;u0073'<td> 文字列を生成します。

引数が を実装している Formattable場合、その Formattable#formatTo formatTo メソッドが呼び出されます。 それ以外の場合、結果は引数の toString() メソッドを呼び出すことによって取得されます。

フラグが '#' 指定され、引数が ではない場合は FormattableFormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'S'td style="vertical-align:top">'&#92;u0053'<td> の大文字の's'バリアント。

</tbody></table>

次の "dFlags"> フラグは、一般的な変換に適用されます。

<table class="striped"><キャプション style="display:none">dFlags</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'-'<td style="vertical-align:top">'&#92;u002d'<td> Left は出力を正当化します。 フィールドの最小幅を埋めるために必要に応じて、変換された値の末尾にスペース ('&#92;u0020') が追加されます。 幅が指定されていない場合は、 MissingFormatWidthException がスローされます。 このフラグが指定されていない場合、出力は右揃えになります。

<tr><th scope="row" style="vertical-align:top">'#'<td style="vertical-align:top">'&#92;u0023'<td> 出力で代替フォームを使用する必要があります。 フォームの定義は、変換によって指定されます。

</tbody></table>

"genWidth">width は、出力に書き込まれる最小文字数です。 変換後の値の長さが幅より小さい場合、出力は合計文字数が幅と等しくなるまで ('&#92;u0020') で'&nbsp;&nbsp;'埋め込まれます。 既定では、パディングは左側にあります。 フラグが '-' 指定されている場合、パディングは右側に表示されます。 幅が指定されていない場合は、最小値はありません。

有効桁数は、出力に書き込まれる最大文字数です。 精度は幅の前に適用されるため、幅が有効桁数より大きい場合でも、出力は文字に切り捨てられます precision 。 有効桁数が指定されていない場合、文字数に明示的な制限はありません。

<h4>"dchar">Character</h4>

この変換は、 と Characterchar適用できます。 また、 が を返trueすときCharacter#isValidCodePointbyteByteshortおよび ShortintInteger 型にも適用できます。 が返された false 場合は、 IllegalFormatCodePointException がスローされます。

<table class="striped"><キャプション style="display:none">charConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'c'<td style="vertical-align:top">'&#92;u0063'<td> Unicode Character Representation で説明されているように、引数を Unicode 文字として書式設定します。 引数が補助文字を表す場合は、複数の 16 ビット char を指定できます。

フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'C'td style="vertical-align:top">'&#92;u0043'<td> の大文字の'c'バリアント。

</tbody></table>

'-' General 変換に定義されているフラグが適用されます。 フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

幅は、一般変換の として定義されます。

有効桁数は適用されません。 有効桁数を指定すると、 IllegalFormatPrecisionException がスローされます。

<h4>"dnum">Numeric</h4>

数値変換は、次のカテゴリに分かれています。

<Ol>

<li><b>Byte、Short、Integer、Long</b><li<>b>BigInteger</b><li><b>Float および Double</b><li><b>BigDecimal</b></ol>

数値型は、次のアルゴリズムに従って書式設定されます。

<b>"L10nAlgorithm"> Number Localization Algorithm</b>

整数部、小数部、指数部 (データ型に応じて) の数字を取得した後、次の変換が適用されます。

<Ol>

<li> 文字列内の各桁文字 d は、現在のロケールの java.text.DecimalFormatSymbols#getZeroDigit() 0 桁z を基準にして計算されたロケール固有の数字 (d - )'0' に置き換えられます。 nbsp;+  を&します。z

<li> 小数点区切り記号が存在する場合は、ロケール固有の java.text.DecimalFormatSymbols#getDecimalSeparator 小数点区切り記号が置き換えられます。

<li> ('&#92;u002c') "L10nGroup">フラグが指定されている場合','、ロケール固有の java.text.DecimalFormatSymbols#getGroupingSeparator グループ化区切り記号が挿入されます。この区切り記号は、文字列の整数部分を最下位から最上位の桁までスキャンし、ロケールの java.text.DecimalFormat#getGroupingSize() グループ化サイズで定義された間隔で区切り記号を挿入することによって挿入されます。

<li> フラグが '0' 指定されている場合、ロケール固有の java.text.DecimalFormatSymbols#getZeroDigit() 0 桁は、符号文字の後 、存在する場合は、最初の 0 以外の数字の前に挿入され、文字列の長さが要求されたフィールド幅と等しくなります。

<li> 値が負の値でフラグが '(' 指定されている場合は、 '(' ('&#92;u0028') が先頭に付加され、 ')' ('&#92;u0029') が追加されます。

<li> 値が負の場合 (または浮動小数点の負のゼロ) '(' 、フラグが指定されていない場合 '-' は、 ('&#92;u002d') が先頭に付加されます。

<li> フラグが '+' 指定され、値が正またはゼロ (または浮動小数点正のゼロ) の場合は、 '+' ('&#92;u002b') が先頭に付加されます。

</Ol>

値が NaN または正の無限大の場合は、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 値が負の無限大の場合、フラグが指定されている場合、出力は "(Infinity)" になります。それ以外の場合 '(' 、出力は "-Infinity" になります。 これらの値はローカライズされません。

"dnint"><b> Byte、Short、Integer、Long </b>

次の変換は、、ByteshortintShortおよび IntegerLonglongbyte適用できます。

<table class="striped"><キャプション style="display:none">IntConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top">'&#92;u0064'<td> 引数を 10 進整数として書式設定します。 ローカリゼーション アルゴリズムが適用されます。

フラグが '0' 指定され、値が負の場合、符号の後にゼロパディングが発生します。

フラグが '#' 指定された場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top">'o'<td style="vertical-align:top">'&#92;u006f'<td> 引数を底 8 の整数として書式設定します。 ローカライズは適用されません。

x が負の場合、結果は 2<sup>n</sup> を値に追加することによって生成される符号なし値になります。ここでn、 は Byte#SIZE Byte、Short#SIZE Short、Integer#SIZE Integer、または Long#SIZE Long クラスの静的SIZEフィールドによって返される型のビット数です。

フラグが '#' 指定されている場合、出力は常に基数インジケーター '0'で始まります。

フラグが '0' 指定された場合、出力には、符号の指示に従ってフィールド幅に先行ゼロが埋め込まれます。

'+'、'  '、または ',' フラグが指定されている場合'('FormatFlagsConversionMismatchExceptionは、 がスローされます。

<tr><th scope="row" style="vertical-align:top">'x'<td style="vertical-align:top">'&#92;u0078'<td> 引数を 16 進数の整数として書式設定します。 ローカライズは適用されません。

x が負の場合、結果は 2<sup>n</sup> を値に追加することによって生成される符号なし値になります。ここでn、 は Byte#SIZE Byte、Short#SIZE Short、Integer#SIZE Integer、または Long#SIZE Long クラスの静的SIZEフィールドによって返される型のビット数です。

フラグが '#' 指定されている場合、出力は常に基数インジケーター "0x"で始まります。

フラグを '0' 指定すると、基数インジケーターまたは符号 (存在する場合) の後に先頭に 0 が付いたフィールド幅に出力が埋め込まれます。

、、'&nbsp;&nbsp;''+'、または ',' フラグが指定FormatFlagsConversionMismatchExceptionされている場合'('は、 がスローされます。

<tr><th scope="row" style="vertical-align:top"><'X'td style="vertical-align:top">'&#92;u0058'<td> の大文字の'x'バリアント。 数値を表す文字列全体は、(存在する場合) とすべての 16 進数 - 'f''a'('&#92;u0061''&#92;u0066' - ) を含む 'x' String#toUpperCase 大文字に変換されます。

</tbody></table>

変換が 、'x'、または 'X''o'、 フラグと フラグの'0'両方'#'が指定されている場合、result には基数インジケーター ('0'8 進数と "0x""0X" 16 進数の場合)、ゼロの数 (幅に基づく)、値が含まれます。

フラグが '-' 指定されていない場合は、記号の前にスペースの埋め込みが行われます。

次の "intFlags"> フラグは、数値整数変換に適用されます。

<table class="striped"><キャプション style="display:none">intFlags</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'+'<td style="vertical-align:top">'&#92;u002b'<td> すべての正の数値に正符号を含める出力が必要です。 このフラグが指定されていない場合は、負の値にのみ符号が含まれます。

'&nbsp;&nbsp;' の両方の'+'フラグが指定されている場合は、 IllegalFormatFlagsException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'&nbsp;&nbsp;'td style="vertical-align:top">'&#92;u0020'<td> 出力には、負でない値に対して 1 つの余分なスペース ('&#92;u0020') を含める必要があります。

'&nbsp;&nbsp;' の両方の'+'フラグが指定されている場合は、 IllegalFormatFlagsException がスローされます。

<tr><th scope="row" style="vertical-align:top">'0'<td style="vertical-align:top">'&#92;u0030'<td> NaN または infinity を変換する場合を除き、出力の先頭に java.text.DecimalFormatSymbols#getZeroDigit ゼロを最小フィールド幅に埋め込む必要があります。 幅が指定されていない場合は、 MissingFormatWidthException がスローされます。

'0' の両方の'-'フラグが指定されている場合は、 IllegalFormatFlagsException がスローされます。

<tr><th scope="row" style="vertical-align:top">','<td style="vertical-align:top">'&#92;u002c'<td> ローカライズ アルゴリズムの "group" セクションで説明されているように、ロケール固有の java.text.DecimalFormatSymbols#getGroupingSeparator グループ区切り記号を含める出力が必要です。

<tr><th scope="row" style="vertical-align:top">'('<td style="vertical-align:top">'&#92;u0028'<td>( ) の前に出力を追加'&#92;u0028''('し、負の値に ('&#92;u0029') を追加')'する必要があります。

</tbody></table>

"intdFlags"> フラグが指定されていない場合、既定の書式設定は次のようになります。

<ul>

<li> 出力は li 負の数の中でwidth<>右揃えされ、 '-' ('&#92;u002d') で始まります

<li> 正の数値と 0 には、符号または余分な先頭スペースは含まれません

<li> グループ区切り記号は含まれていません

</ul>

"intWidth"> 幅は、出力に書き込まれる最小文字数です。 これには、記号、数字、区切り記号、基数インジケーター、かっこが含まれます。 変換後の値の長さが幅より小さい場合、出力は、文字数の合計が width になるまでスペース ('&#92;u0020') で埋め込まれます。 既定では、パディングは左側にあります。 フラグが指定されている場合 '-' 、パディングは右側に表示されます。 width が指定されていない場合は、最小値はありません。

有効桁数は適用されません。 有効桁数を指定すると、 IllegalFormatPrecisionException がスローされます。

"dnbint"><b> BigInteger </b>

に次の変換を java.math.BigInteger適用できます。

<table class="striped"><キャプション style="display:none">bIntConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top">'&#92;u0064'<td> 出力を 10 進整数として書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

フラグが '#' 指定 FormatFlagsConversionMismatchException されている場合は、スローされます。

<tr><th scope="row" style="vertical-align:top">'o'<td style="vertical-align:top">'&#92;u006f'<td> 底 8 の整数として出力を書式設定する必要があります。 ローカライズは適用されません。

x が負の場合、結果は ('&#92;u002d') で始まる符号付き'-'値になります。 プリミティブ型とは異なり、明示的なデータ型サイズを想定しないと、符号付き同等のを作成できないため、この型に対して署名付き出力が許可されます。

x が正またはゼロで、フラグが'+'指定されている場合、結果は ('&#92;u002b') で'+'始まります。

フラグが '#' 指定されている場合、出力は常にプレフィックスで '0' 始まります。

フラグが '0' 指定された場合、出力には、符号の指示に従ってフィールド幅に先行ゼロが埋め込まれます。

フラグが ',' 指定された場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top">'x'<td style="vertical-align:top">'&#92;u0078'<td> 底 16 の整数として出力を書式設定する必要があります。 ローカライズは適用されません。

x が負の場合、結果は ('&#92;u002d') で始まる符号付き'-'値になります。 プリミティブ型とは異なり、明示的なデータ型サイズを想定しないと、符号付き同等のを作成できないため、この型に対して署名付き出力が許可されます。

x が正またはゼロで、フラグが'+'指定されている場合、結果は ('&#92;u002b') で'+'始まります。

フラグが '#' 指定されている場合、出力は常に基数インジケーター "0x"で始まります。

フラグを '0' 指定すると、基数インジケーターまたは符号 (存在する場合) の後に先頭に 0 が付いたフィールド幅に出力が埋め込まれます。

フラグが ',' 指定された場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'X'td style="vertical-align:top">'&#92;u0058'<td> の大文字の'x'バリアント。 数値を表す文字列全体は、(存在する場合) とすべての 16 進数 - 'f''a'('&#92;u0061''&#92;u0066' - ) を含む 'x' String#toUpperCase 大文字に変換されます。

</tbody></table>

変換が 、'x'、または 'X''o'、 フラグと フラグの'0'両方'#'が指定されている場合、result には基本インジケーター ('0'8 進数または "0x""0X" 16 進数の場合)、ゼロの数 (幅に基づく)、値が含まれます。

フラグが '0' 指定され、値が負の場合、符号の後にゼロパディングが発生します。

フラグが '-' 指定されていない場合は、記号の前にスペースの埋め込みが行われます。

Byte、Short、Integer、Long に定義されているすべてのフラグが適用されます。 フラグが指定されていない場合の既定の動作は、Byte、Short、Integer、Long の場合と同じです。

幅の指定は、Byte、Short、Integer、Long に定義されているのと同じです。

有効桁数は適用されません。 有効桁数を指定すると、 IllegalFormatPrecisionException がスローされます。

"dndec"><b> Float および Double</b>

、、および Doubleに次の変換をfloatFloatdouble適用できます。

<table class="striped"><キャプション style="display:none">floatConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top"><'e'td style="vertical-align:top">'&#92;u0065'<td> "scientific"> computerized scientific notation を使用して出力を書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

m の大きさの書式設定は、その値によって異なります。

m が NaN または無限の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 これらの値はローカライズされません。

m が正の 0 または負の 0 の場合、指数は になります"+00"

それ以外の場合、結果は引数の符号と大きさ (絶対値) を表す文字列になります。 符号の書式設定は、ローカリゼーション アルゴリズムで説明されています。 m の大きさの書式設定は、その値によって異なります。

n は、10<sup>n</sup> <= m <10<sup>n+1</sup のような一意の整数にしてみましょう。次に、 を m と 10<sup>n</sup>> の数学的に正確な商にし、1 <;= & lt になるようにします。10. その 後、大きさは、 の整数部分として表され、1 つの 10 進数として表され、その後に小数点区切り記号が続 き、 の小数部を表す 10 進数が続き、小文字ロケール固有の java.text.DecimalFormatSymbols#getExponentSeparator 指数区切り記号 (例: 'e') が続き、指数の符号が続き、 n が 10 進数の整数として表されます。 メソッド Long#toString(long, int)によって生成される、少なくとも 2 桁の数字を含むゼロ埋め込み。

m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が、 または Double#toString(double) によってFloat#toString(float)返される文字列の小数点の後に出現する桁数より小さい場合、値は java.math.RoundingMode#HALF_UP丸めハーフアップ アルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、 または Double#toString(double) を必要に応じて使用Float#toString(float)します。

フラグが ',' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'E'td style="vertical-align:top">'&#92;u0045'<td> の大文字の'e'バリアント。 指数記号は、大文字ロケール固有の java.text.DecimalFormatSymbols#getExponentSeparator 指数区切り記号 (例: ) になります。 'E'

<tr><th scope="row" style="vertical-align:top">'g'<td style="vertical-align:top">'&#92;u0067'<td> 以下で説明するように、出力を一般的な科学的表記で書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

精度の丸め後、結果の大きさ m の書式設定は、その値によって異なります。

m が 10<sup-4></sup 以上で、sup 精度</sup>> が 10 未満の場合は、10<> 進数形式で表されます。

m が 10<sup-4></sup> 未満または 10<sup>精度</sup> 以上の場合は、コンピューター化された科学的表記で表されます。

m の有効桁数の合計は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が の場合は 0、 と見なされます 1

フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'G'td style="vertical-align:top">'&#92;u0047'<td> の大文字の'g'バリアント。

<tr><th scope="row" style="vertical-align:top"><'f'td style="vertical-align:top">'&#92;u0066'<td>" 出力は"decimal">decimal 形式を使用して書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

結果は、引数の符号と大きさ (絶対値) を表す文字列です。 符号の書式設定は、ローカリゼーション アルゴリズムで説明されています。 m の大きさの書式設定は、その値によって異なります。

m NaN または infinite の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 これらの値はローカライズされません。

大きさは m の整数部分として書式設定され、先頭にゼロが付かなくなり、その後に小数点区切り記号が続き、その後に m の小数部を表す 1 つ以上の 10 進数が続きます。

m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が、 または Double#toString(double) によってFloat#toString(float)返される文字列の小数点の後に出現する桁数より小さい場合、値は java.math.RoundingMode#HALF_UP丸めハーフアップ アルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、 または Double#toString(double) を必要に応じて使用Float#toString(float)します。

<tr><th scope="row" style="vertical-align:top">'a'<td style="vertical-align:top">'&#92;u0061'<td> 出力を 16 進数の指数形式で書式設定する必要があります。 ローカライズは適用されません。

結果は、引数 x の符号と大きさ (絶対値) を表す文字列 です

x が負または負の 0 の値の場合、結果は ('&#92;u002d') で'-'始まります。

x が正または正の 0 の値で、フラグが'+'指定されている場合、結果は ('&#92;u002b') で'+'始まります。

m の大きさの書式設定は、その値によって異なります。

<ul>

<li> 値が NaN または無限の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。

<li>m が 0 の場合は、文字列 "0x0.0p0"で表されます。

<li>m が正規化表現を double 持つ値の場合、部分文字列を使用して仮数フィールドと指数フィールドを表します。 仮数は、文字 "0x1." の後に残りの部分の 16 進数表現を分数として表します。 指数は、指数値に対して 'p' を呼び出Integer#toString(int) Integer.toStringすことによって生成されるかのように、('&#92;u0070') の後に偏りのない指数の 10 進文字列で表されます。 有効桁数が指定されている場合、値は指定された 16 進数の数に丸められます。

<li>mdouble 非正規表現を持つ値である場合、有効桁数が 1 ~ 12 の範囲に指定されていない限り、記号は文字 '0x0.' で表され、その後に残りの部分の 16 進数表現が分数として、指数は で 'p-1022'表されます。 精度が間隔 [1, 12]、非正規値は、16 進数の有効桁数に丸められた 文字 '0x1.'で始まり、それに応じて指数が調整されるように正規化されます。 非正規仮数には 0 以外の数字が少なくとも 1 つ必要であることに注意してください。

</ul>

または ',' フラグが'('指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'A'td style="vertical-align:top">'&#92;u0041'<td> の大文字の'a'バリアント。 数値を表す文字列全体は、() と ( とすべての 16 進数 'a''f' - ('&#92;u0061''&#92;u0078' - '&#92;u0070''&#92;u0066') を含む'x'大文字に変換されます。'p'

</tbody></table>

Byte、Short、Integer、Long に定義されているすべてのフラグが適用されます。

フラグが '#' 指定されている場合、小数点の区切り記号は常に存在します。

"floatdFlags"> フラグが指定されていない場合、既定の書式設定は次のようになります。

<ul>

<li> 出力は li 負の数で始まる li> 正の数で<'-'>始まり、正の 0 には符号または余分な先頭スペースが含まれていません。width<

<li> グループ区切り記号は含まれていません

<li> 小数点区切り記号は、その後に数字が続く場合にのみ表示されます

</ul>

"floatDWidth">width は、出力に書き込まれる最小文字数です。 これには、任意の符号、数字、グループ化区切り記号、小数点区切り記号、指数記号、基数インジケーター、かっこ、および必要に応じて無限大と NaN を表す文字列が含まれます。 変換後の値の長さが幅より小さい場合、出力は、文字数の合計が width になるまでスペース ('&#92;u0020') で埋め込まれます。 既定では、パディングは左側にあります。 フラグが '-' 指定されている場合、パディングは右側にあります。 width が指定されていない場合は、最小値はありません。

"floatDPrec"> 変換が 'e''E' または 'f'の場合、有効桁数は小数点の後の桁数です。 有効桁数が指定されていない場合は、 と見なされます 6

変換が 'g' または 'G'の場合、精度は丸めた後の結果の大きさの有効桁数の合計です。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が の場合は 0、 と見なされます 1

変換が 'a' または 'A'の場合、有効桁数は基数ポイントの後の 16 進数の数字です。 有効桁数が指定されていない場合は、 によって Double#toHexString(double) 返されるすべての数字が出力されます。

"dnbdec"><b> BigDecimal </b>

次の変換を適用 java.math.BigDecimal BigDecimalできます。

<table class="striped"><キャプション style="display:none">floatConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top"><'e'td style="vertical-align:top">'&#92;u0065'<td> "bscientific">computerized scientific notation を使用して出力を書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

m の大きさの書式設定は、その値によって異なります。

m が正の 0 または負の 0 の場合、指数は になります"+00"

それ以外の場合、結果は引数の符号と大きさ (絶対値) を表す文字列になります。 符号の書式設定は、ローカリゼーション アルゴリズムで説明されています。 m の大きさの書式設定は、その値によって異なります。

n は、10<sup>n</sup> <= m <10<sup>n+1</sup のような一意の整数にしてみましょう。次に、 を m と 10<sup>n</sup>> の数学的に正確な商にし、1 <;= & lt になるようにします。10. その後、大きさは、 の整数部分として 10 進数で表され、その後に小数点区切り記号が続き、 の小数部を表す 10 進数が続き、指数記号 'e' ('&#92;u0065') が続き、指数の符号が続き、 メソッド Long#toString(long, int)によって生成される 10 進整数としての n の表現が続きます。 少なくとも 2 桁の数字を含むように、0 を埋め込みます。

m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が小数点の右側の桁数より小さい場合、値は java.math.RoundingMode#HALF_UP切り上げアルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、 を使用します BigDecimal#toString()

フラグが ',' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'E'td style="vertical-align:top">'&#92;u0045'<td> の大文字の'e'バリアント。 指数記号は ('&#92;u0045') になります'E'

<tr><th scope="row" style="vertical-align:top">'g'<td style="vertical-align:top">'&#92;u0067'<td> 以下で説明するように、出力を一般的な科学的表記で書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。

精度を丸めてから、結果の大きさ m の書式設定は、その値によって異なります。

m が 10<sup-4></sup 以上で、sup 精度</sup>> が 10 未満の場合は、10<> 進形式で表されます。

m が 10<sup-4></sup> より小さい場合、または 10<sup>精度</sup> 以上の場合は、コンピューター化された科学的表記で表されます。

有効桁数 m の合計数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が の 0場合は、 と見なされます 1

フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

<tr><th scope="row" style="vertical-align:top"><'G'td style="vertical-align:top">'&#92;u0047'<td> の大文字の'g'バリアント。

<tr><th scope="row" style="vertical-align:top"><'f'td style="vertical-align:top">'&#92;u0066'<td> 出力は "bdecimal"> decimal 形式を使用して書式設定する必要があります。 ローカライズ アルゴリズムが適用されます。

結果は、引数の符号と大きさ (絶対値) を表す文字列です。 記号の書式設定については、ローカライズ アルゴリズムで説明します。 m の大きさの書式設定は、その値によって異なります。

この大きさは 、m の整数部分として書式設定され、先頭にゼロが付かなくなり、その後に小数点の後に m の小数部を表す 1 つ以上の 10 進数が続きます。

m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は です 6。 有効桁数が小数点の右側の桁数より小さい場合、値は java.math.RoundingMode#HALF_UP丸めハーフアップ アルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、 を使用します BigDecimal#toString()

</tbody></table>

Byte、Short、Integer、Long に定義されているすべてのフラグが適用されます。

フラグが '#' 指定されている場合、小数点の区切り記号は常に存在します。

フラグが指定されていない場合の既定の動作は、Float と Double の場合と同じです。

幅と精度の指定は、Float と Double に定義されているのと同じです。

<h4>"ddt">Date/Time</h4>

この変換は、、LongCalendarDateおよび TemporalAccessor TemporalAccessor<table class="striped"><キャプション style="display:none">DTConv</キャプション<>tbody に適用longできます。>

<tr><th scope="row" style="vertical-align:top">'t'<td style="vertical-align:top">'&#92;u0074'<td> Prefix for date and time conversion characters. <tr><th scope="row" style="vertical-align:top"><'T'td style="vertical-align:top">'&#92;u0054'<td> の大文字の't'バリアント。

</tbody></table>

および 変換には、次の日付と時刻の変換文字サフィックスが't''T'定義されています。 型は、GNU date および POSIX strftime(3c)で定義されているものと似ていますが、完全には同じではありません。 Java 固有の機能にアクセスするための追加の変換の種類が用意されています (たとえば 'L' 、2 秒以内のミリ秒)。

書式設定には、次の変換文字が使用されます。

<table class="striped"><キャプション style="display:none">time</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top"td style="<'H'>vertical-align:top">'&#92;u0048'<td> Hour of the day for the 24-hour, formatted as two digits with a leading zero as necessary, つまり 00 - 2300 . corresponds to midnight.

<tr><th scope="row" style="vertical-align:top"><'I'td style="vertical-align:top">'&#92;u0049'<td> Hour for the 12-hour, formatted as two digits with a leading zero as necessary, すなわち . 01 - 12 01 は 1 時 (午前または午後) に対応します。

<tr><th scope="row" style="vertical-align:top">'k'<td style="vertical-align:top"><'&#92;u006b'td> Hour of the day for the 24-hour clock, つまり 0 - 23、 は0午前 0 時に対応します。

<tr><th scope="row" style="vertical-align:top">'l'<td style="vertical-align:top"><'&#92;u006c'td> Hour for the 12-hour, つまり 、 は 1 1 時 (午前または午後) に対応します。 1 - 12

<tr><th scope="row" style="vertical-align:top"><'M'td style="vertical-align:top">'&#92;u004d'<td> Minute は、00 - 59必要に応じて先頭に 0 を付けた 2 桁の数字で書式設定された 1 時間以内の分です。

<tr><th scope="row" style="vertical-align:top"td style="<'S'>vertical-align:top">'&#92;u0053'<td> Seconds within the minute, formatted as two digits with a leading zero as required, つまり 00 - 60 ("60" はうるう秒をサポートするために必要な特別な値です)。

<tr><th scope="row" style="vertical-align:top"><'L'td style="vertical-align:top">'&#92;u004c'<td> Millisecond 内の 2 番目の数値は、必要に応じて先頭に 0 を付けた 3 桁の数字として書式設定されます。つまり、 です。 000 - 999

<tr><th scope="row" style="vertical-align:top"><'N'td style="vertical-align:top">'&#92;u004e'<td> Nanosecond within the second, formatted as nine digits with leading zeros as necessary, すなわち . 000000000 - 999999999この値の精度は、基になるオペレーティング システムまたはハードウェアの解像度によって制限されます。

<tr><th scope="row" style="vertical-align:top"td style="><'p'vertical-align:top"><'&#92;u0070'td> Locale 固有の java.text.DateFormatSymbols#getAmPmStrings 朝または午後のマーカー (例:am 小文字)。" または "pm" 変換プレフィックス 'T' を使用すると、この出力が大文字に強制されます。 (小文字の出力が生成されることに 'p' 注意してください。これは、大文字の出力を生成する GNU date や POSIX strftime(3c) とは異なります。

<tr><th scope="row" style="vertical-align:top"><'z'td style="vertical-align:top"><'&#92;u007a'td>RFC 822 style gmt からの数値タイム ゾーン オフセット (例: -0800)。 この値は、夏時間の必要に応じて調整されます。 、longLong、および Date で使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。

<tr><th scope="row" style="vertical-align:top">'Z'<td style="vertical-align:top">'&#92;u005a'<td> タイム ゾーンの省略形を表す文字列。 この値は、夏時間の必要に応じて調整されます。 、longLong、および Date で使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。 フォーマッタのロケールは、引数のロケール (存在する場合) よりも優先されます。

<tr><th scope="row" style="vertical-align:top"><'s'td style="vertical-align:top">'&#92;u0073'<td> Seconds since the beginning of the epoch starting at 1970 00:00:00 UTC, すなわち . Long.MIN_VALUE/1000Long.MAX_VALUE/1000

<tr><th scope="row" style="vertical-align:top"><'Q'td style="vertical-align:top">'&#92;u004f'<td> Milliseconds since the beginning of the epoch starting at 1970 00:00:00 UTC, すなわち . Long.MIN_VALUELong.MAX_VALUE この値の精度は、基になるオペレーティング システムまたはハードウェアの解像度によって制限されます。

</tbody></table>

日付の書式設定には、次の変換文字が使用されます。

<table class="striped"><キャプション style="display:none">date</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'B'<td style="vertical-align:top"><'&#92;u0042'td> Locale 固有の java.text.DateFormatSymbols#getMonths full month name, 例: "January", . "February"

<tr><th scope="row" style="vertical-align:top"td style="<'b'>vertical-align:top">'&#92;u0062'<td> Locale 固有の java.text.DateFormatSymbols#getShortMonths 短縮された月名 (例: "Jan"、 ) "Feb"

<tr><th scope="row" style="vertical-align:top"><'h'td style="vertical-align:top">'&#92;u0068'<td> と同じです。'b'

<tr><th scope="row" style="vertical-align:top"><'A'td style="vertical-align:top"><'&#92;u0041'td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, 例: "Sunday""Monday"<tr><th scope="row" style="vertical-align:top"'a'><td style="vertical-align:top"><'&#92;u0061'td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, 例: "Sun", tr><"Mon"<th scope="row" style="vertical-align:top">'C'<td style="vertical-align:top">'&#92;u0043'<td> 4 桁の年を で100除算し、必要に応じて先頭に 0 を付けて 2 桁として書式設定します。 つまり<00 - 99、tr><th scope="row" style="vertical-align:top">'Y'<td style="vertical-align:top">'&#92;u0059'<td> Year。グレゴリオ暦の CE と等しい92など0092、必要に応じて先頭に 0 を付けて少なくとも 4 桁に書式設定されます。

<tr><th scope="row" style="vertical-align:top"><'y'td style="vertical-align:top">'&#92;u0079'<td> 年の最後の 2 桁(必要に応じて先頭に 0 を00 - 99付けた形式)

<tr><th scope="row" style="vertical-align:top"><'j'td style="vertical-align:top">'&#92;u006a'<td> Day of year, formatted as three digits with leading zeros as necessary, 例: 001 - 366 Gregorian calendar. 001 は、年の最初の日に対応します。

<tr><th scope="row" style="vertical-align:top">'m'<td style="vertical-align:top"><'&#92;u006d'td> Month。必要に応じて 2 桁の数字で書式設定され、必要に応じて先頭に 0 が付きます。つまり01 - 13、"01" は年の最初の月であり、("13" は月暦をサポートするために必要な特別な値です)。

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top"><'&#92;u0064'td> Day of month, formatted as two digits with leading zeros as necessary, すなわち01 - 31, where "01" is the first day of the month.

<tr><th scope="row" style="vertical-align:top">'e'<td style="vertical-align:top"><'&#92;u0065'td> Day of month, formatted as two digits, つまり1 - 31、"1" は月の最初の日です。

</tbody></table>

一般的な日付/時刻構成の書式設定には、次の変換文字が使用されます。

<table class="striped"><キャプション style="display:none">composites</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top"td style="'R'><vertical-align:top">'&#92;u0052'<td> Time formatted for the 24-hour clock as<"%tH:%tM" tr><th scope="row" style="vertical-align:top"<'T'>td style="vertical-align:top"'&#92;u0054'<>td> Time formatted for the 24-hour clock as ."%tH:%tM:%tS"

<tr><th scope="row" style="vertical-align:top"><'r'td style="vertical-align:top">'&#92;u0072'<td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp" 午前または午後のマーカー ('%Tp') の場所は、ロケールに依存する場合があります。

<tr><th scope="row" style="vertical-align:top"><'D'td style="vertical-align:top">'&#92;u0044'<td> Date formatted as ."%tm/%td/%ty"

<tr><th scope="row" style="vertical-align:top"><'F'td style="vertical-align:top"><'&#92;u0046'td>ISO 8601 complete date formatted as ."%tY-%tm-%td"

<tr><th scope="row" style="vertical-align:top">'c'<td style="vertical-align:top"><'&#92;u0063'td> Date and time formatted as "%ta %tb %td %tT %tZ %tY", . "Sun Jul 20 16:17:00 EDT 1969"

</tbody></table>

'-' General 変換に定義されているフラグが適用されます。 フラグが '#' 指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

幅は、出力に書き込まれる最小文字数です。 変換された値の長さが より width 小さい場合、出力は、文字数の合計が width になるまでスペース ('&#92;u0020') で埋め込まれます。 既定では、パディングは左側にあります。 フラグが '-' 指定されている場合、パディングは右側に表示されます。 width が指定されていない場合は、最小値はありません。

有効桁数は適用されません。 有効桁数を指定すると、 IllegalFormatPrecisionException がスローされます。

<h4>"dper">Percent</h4>

変換はどの引数にも対応していません。

<table class="striped"><キャプション style="display:none">DTConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'%'<td> 結果はリテラル '%' ('&#92;u0025') です

幅は、 を含む出力に書き込まれる最小文字数です '%'。 変換された値の長さが より width 小さい場合、出力は、文字数の合計が width になるまでスペース ('&#92;u0020') で埋め込まれます。 パディングは左側にあります。 width が指定されていない場合は、 '%' だけが出力されます。

'-' General 変換に定義されているフラグが適用されます。 他のフラグが指定されている場合は、 FormatFlagsConversionMismatchException がスローされます。

有効桁数は適用されません。 有効桁数が指定されている場合は、 IllegalFormatPrecisionException がスローされます。

</tbody></table>

<h4>"dls">Line Separator</h4>

変換はどの引数にも対応していません。

<table class="striped"><キャプション style="display:none">DTConv</キャプション><tbody>

<tr><th scope="row" style="vertical-align:top">'n'<td> the platform-specific line separator as returned by System#lineSeparator().

</tbody></table>

フラグ、幅、および有効桁数は適用されません。 が指定されている場合は、IllegalFormatFlagsExceptionIllegalFormatWidthException、、および IllegalFormatPrecisionExceptionがそれぞれスローされます。

<h4>"dpos">Argument Index</h4>

書式指定子は、次の 3 つの方法で引数を参照できます。

<ul>

<li>明示的なインデックス作成 は、書式指定子に引数インデックスが含まれている場合に使用されます。 引数インデックスは、引数リスト内の引数の位置を示す 10 進整数です。 最初の引数は "1$"、2 番目の引数は "2$" などによって参照されます。引数は複数回参照できます。

例:

<blockquote>

formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
                               "a", "b", "c", "d")
              // -&gt; "d c b a d c b a"

</blockquote>

<li>相対インデックスは、書式指定子に ('&#92;u003c') フラグが含まれている'<'場合に使用されます。これにより、前の書式指定子の引数が再利用されます。 前の引数がない場合は、 MissingFormatArgumentException がスローされます。

<blockquote>

formatter.format("%s %s %&lt;s %&lt;s", "a", "b", "c", "d")
               // -&gt; "a b b b"
               // "c" and "d" are ignored because they are not referenced

</blockquote>

<li>通常のインデックス作成 は、書式指定子に引数インデックスもフラグも含まれている場合に '<' 使用されます。 通常のインデックス作成を使用する各書式指定子には、明示的または相対インデックス作成で使用されるインデックスに依存しない、連続する暗黙的なインデックスが引数リストに割り当てられます。

<blockquote>

formatter.format("%s %s %s %s", "a", "b", "c", "d")
              // -&gt; "a b c d"

</blockquote>

</ul>

次のように、すべての形式のインデックス作成を使用する書式指定文字列を使用できます。

<blockquote>

formatter.format("%2$s %s %&lt;s %s", "a", "b", "c", "d")
              // -&gt; "b a a b"
              // "c" and "d" are ignored because they are not referenced

</blockquote>

引数の最大数は、引用「 Java&trade」で定義されている Java 配列の最大次元によって<>制限されます。仮想マシンの仕様</引用>。 引数インデックスが使用可能な引数に対応していない場合は、 MissingFormatArgumentException がスローされます。

書式指定子よりも多くの引数がある場合、追加の引数は無視されます。

特に指定しない限り、このクラスのメソッドまたはコンストラクターに引数を渡 null すと、 が NullPointerException スローされます。

1\.5 で追加されました。

の Java ドキュメント java.util.Formatter

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

Formatter()

新しいフォーマッタを構築します。

Formatter(File)

指定したファイルを使用して新しいフォーマッタを構築します。

Formatter(File, Charset, Locale)

指定したファイル、文字セット、ロケールを使用して新しいフォーマッタを構築します。

Formatter(File, String)

指定したファイルと文字セットを使用して新しいフォーマッタを構築します。

Formatter(File, String, Locale)

指定したファイル、文字セット、ロケールを使用して新しいフォーマッタを構築します。

Formatter(IAppendable)

指定した変換先を使用して新しいフォーマッタを構築します。

Formatter(IAppendable, Locale)

指定した宛先とロケールを持つ新しいフォーマッタを構築します。

Formatter(Locale)

指定したロケールを持つ新しいフォーマッタを構築します。

Formatter(PrintStream)

指定した印刷ストリームを使用して新しいフォーマッタを構築します。

Formatter(Stream)

指定した出力ストリームを使用して新しいフォーマッタを構築します。

Formatter(Stream, Charset, Locale)

指定した出力ストリーム、文字セット、ロケールを使用して新しいフォーマッタを構築します。

Formatter(Stream, String)

指定した出力ストリームと文字セットを使用して、新しいフォーマッタを構築します。

Formatter(Stream, String, Locale)

指定した出力ストリーム、文字セット、ロケールを使用して新しいフォーマッタを構築します。

Formatter(String)

指定したファイル名を持つ新しいフォーマッタを構築します。

Formatter(String, Charset, Locale)

指定したファイル名、文字セット、ロケールを持つ新しいフォーマッタを構築します。

Formatter(String, String)

指定したファイル名と文字セットを使用して新しいフォーマッタを構築します。

Formatter(String, String, Locale)

指定したファイル名、文字セット、ロケールを持つ新しいフォーマッタを構築します。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
JniPeerMembers

printf スタイルの書式指定文字列のインタープリター。

PeerReference

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

(継承元 Object)

メソッド

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

このフォーマッタを閉じます。

Dispose()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
Dispose(Boolean)

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
Flush()

このフォーマッタをフラッシュします。

Format(Locale, String, Object[])

指定した書式指定文字列と引数を使用して、書式設定された文字列をこのオブジェクトの変換先に書き込みます。

Format(String, Object[])

指定した書式指定文字列と引数を使用して、書式設定された文字列をこのオブジェクトの変換先に書き込みます。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IoException()

このフォーマッタAppendableの によって最後にIOExceptionスローされた を返します。

JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Locale()

このフォーマッタの構築によって設定されたロケールを返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
Out()

出力先を返します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.Finalized()

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

printf スタイルの書式指定文字列のインタープリター。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

printf スタイルの書式指定文字列のインタープリター。

GetJniTypeName(IJavaPeerable)

printf スタイルの書式指定文字列のインタープリター。

FlushAsync(IFlushable)

printf スタイルの書式指定文字列のインタープリター。

適用対象