Formatter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
- 実装
注釈
printf スタイルの書式指定文字列のインタープリター。 このクラスは、レイアウトの理由と配置、数値、文字列、および日付/時刻データの一般的な形式、およびロケール固有の出力をサポートします。 などのbyte
java.math.BigDecimal BigDecimal
Calendar
一般的な 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")
// -> " 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)"
</blockquote>
一般的な書式設定要求の便利なメソッドは、次の呼び出しで示すように存在します。
<blockquote>
// 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"
</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);
// -> 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 で、オブジェクトc
でjava.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 文字シーケンスです。 最初の文字は or 't'
'T'
です。 2 番目の文字は、使用する形式を示します。 これらの文字は GNU および POSIX strftime(3c)
でdate
定義されているものに似ていますが、完全には同じではありません。
<li> 引数に対応しない書式指定子には、次の構文があります。
<blockquote>
%[flags][width]conversion
</blockquote>
省略可能な フラグ と 幅 は、上記のように定義されています。
必要な 変換 は、出力に挿入する内容を示す文字です。
</ul>
<h4> 変換 </h4>
変換は次のカテゴリに分類されます。
<ol>
<li><b>General</b> - 任意の引数型に適用できます
<li>b 文字/b> - Unicode 文字を表す基本型に適用できます。 Byte
Short
Character
short
char
byte
<>< この変換は型int
にも適用でき、Integer
li><b>Numeric</b をtrue
<返す場合Character#isValidCodePoint
>
<ol>
<li>b 整数/b> - Java 整数<型に適用できます。java.math.BigInteger BigInteger
Integer
int
long
Short
Character
byte
char
Byte
Long
short
><
<li><b>浮動小数点</b> - Java 浮動小数点型に適用できます: float
, , Float
, double
, Double
, および java.math.BigDecimal BigDecimal
</ol>
<li>b 日付/時刻</b> - 日付または時刻をエンコードできる Java 型に適用できます。 long
, , Long
, Calendar
, Date
TemporalAccessor TemporalAccessor
<および li><b>Percent</b> - リテラル'%'
を生成します ('\u0025'
)><
<li><b>行区切り記号</b> - プラットフォーム固有の行区切り記号を生成します
</ol>
カテゴリ General、Character、Numberic、Integral、Date/Time の変換の場合、引数 arg が指定されていない限り、結果は null
"null
" になります。
次の表に、サポートされている変換の概要を示します。 大文字で示される変換 (つまり 'B'
、, 'H'
, , 'S'
, 'C'
, , 'X'
, 'E'
, 'G'
, , 'A'
, ) は、対応する小文字の変換文字の場合と 'T'
同じですが、結果が優先 java.util.Locale Locale
するルールに従って大文字に変換される点が異なります。 インスタンスの構築時、またはそのメソッド呼び出しのパラメーターとして明示的なロケールが指定されていない場合は、 java.util.Locale.Category#FORMAT default locale
そのロケールが使用されます。
<table class="striped"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style="vertical-align:bottom"> 引数カテゴリ <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> 引数 arg が null
指定されている場合、結果は "false
" になります。 arg が a boolean
または Boolean
の場合、結果は 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> 引数が実装Formattable
されている場合は、呼Formattable#formatTo arg.formatTo
び出されます。 それ以外の場合、結果は arg.toString()
.
<tr><th scope="row" style="vertical-align:top">'c'
, 'C'
<td style="vertical-align:top"> 文字 <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>。>
<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"> パーセント <td> 結果はリテラル '%'
()'\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 date
および POSIX strftime(3c)
で定義されているものと似ていますが、完全には同じではありません。 Java 固有の機能にアクセスするための追加の変換の種類が用意されています (たとえば 'L'
、ミリ秒単位)。
書式設定には、次の変換文字が使用されます。
<table class="striped"><caption style="display:none">time</caption><tbody><tr><th scope="row" style="vertical-align:top"><'H'
td> Hour of the day for the 24-hour, formatted as the two digits with a leading zero as necessary. 00 - 23
<tr><th scope="row" style="vertical-align:top">'I'
<td> Hour for the 12-hour, 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 within the hour formatted as two digits with a leading zero as necessary, e. 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 within the second formatted as three digits with leading zeros as necessary, e. 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, e. 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 numeric time zone offset from GMT, 例: . -0800
この値は、夏時間に必要に応じて調整されます。 long
、Long
およびDate
使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。
<tr><th scope="row" style="vertical-align:top">'Z'
<td> タイム ゾーンの省略形を表す文字列。 この値は、夏時間に必要に応じて調整されます。 long
、Long
および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"><caption style="display:none">date</caption><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-specific java.text.DateFormatSymbols#getShortMonths 省略された月の名前 (例: . "Feb"
"Jan"
<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 days day of the week, 例: "Sun"
, "Mon"
<tr><th scope="row" style="vertical-align:top"'C'
<>td> 4 桁の年を除算100
必要に応じて先頭に 0 が付いた 2 桁の数字として書式設定されます。つまり00 - 99
<、tr><th scope="row" style="vertical-align:top"<'Y'
>td> Year。必要に応じて先頭にゼロが付いた 4 桁以上の数字として書式設定されます。たとえば0092
、グレゴリオ暦の CE と等しくなります92
。
<tr><th scope="row" style="vertical-align:top">'y'
<td> Last 2 digits of the year, formatted with leading zeros as necessary, e. 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, i.e. 1 - 31
</tbody></table>
次の変換文字は、一般的な日付/時刻構成の書式設定に使用されます。
<table class="striped"><caption style="display:none">composites</caption><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 formatted as "%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"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> フラグ <th scope="col" style="vertical-align:bottom"> General <th scope="col" style="vertical-align:bottom"> Character <th scope="col" style="vertical-align:bottom"> 整数 <th scope="col" style="vertical-align:bottom"> 浮動小数点 <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> For 'o'
, 'x'
and conversions 'X'
only.
<sup>4</sup> For 'd'
, 'o'
, , 'x'
, and 'X'
conversions applied to java.math.BigInteger BigInteger
or 'd'
applied to byte
, , Byte
, short
, int
Short
and Integer
, long
and Long
.
<sup>5</sup> For 'e'
, 'E'
, , 'f'
, 'g'
and conversions 'G'
only.
フラグとして明示的に定義されていない文字は無効であり、将来の拡張機能用に予約されています。
<h4> Width </h4>
幅は、出力に書き込まれる最小文字数です。 行区切り記号の変換では、幅は適用されません。指定された場合は、例外がスローされます。
<h4> Precision </h4>
一般的な引数型の場合、有効桁数は出力に書き込まれる最大文字数です。
浮動小数点変換 'a'
、'A'
、、、'e'
'E'
および'f'
有効桁数は、基数の後の桁数です。 変換 'g'
が or 'G'
の場合、有効桁数は丸めた後の結果の大きさの合計桁数です。
文字、整数、日付/時刻の引数の型と、パーセントおよび行区切り記号の変換の場合、有効桁数は適用されません。有効桁数が指定されている場合は、例外がスローされます。
<h4> 引数インデックス </h4>
引数インデックスは、引数リスト内の引数の位置を示す 10 進整数です。 最初の引数は "1$
"、2 番目の引数は "2$
"などによって参照されます。
位置によって引数を参照するもう 1 つの方法は、('\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 %<te,%<tY", c);
</blockquote>
<hr><h3>"detail">Details</h3>
このセクションでは、条件と例外、サポートされているデータ型、ローカライズ、フラグ、変換、データ型間の相互作用など、書式設定の動作の詳細を提供することを目的としています。 書式設定の概念の概要については、「概要」を参照してください。
変換、日付/時刻変換サフィックス、またはフラグとして明示的に定義されていない文字は無効であり、将来の拡張機能用に予約されています。 このような文字を書式指定文字列で使用すると、UnknownFormatConversionException
UnknownFormatFlagsException
スローまたはスローされます。
書式指定子に無効な値を持つ幅または有効桁数が含まれている場合、またはサポートされていない場合IllegalFormatWidthException
IllegalFormatPrecisionException
は、それぞれがスローされます。
書式指定子に、対応する引数に適用できない変換文字が含まれている場合は、an IllegalFormatConversionException
がスローされます。
指定されたすべての例外は、任意のformat
メソッド、および format
.String#format(String,Object...) String.format
java.io.PrintStream#printf(String,Object...) PrintStream.printf
Formatter
カテゴリ General、Character、Numberic、Integral、Date/Time の変換の場合、引数 arg が指定されていない限り、結果は null
"null
" になります。
大文字で示される変換 (つまり 'B'
、, 'H'
, , 'S'
, 'C'
, , 'X'
, 'E'
, 'G'
, , 'A'
, ) は、対応する小文字の変換文字の場合と 'T'
同じですが、結果が優先 java.util.Locale Locale
するルールに従って大文字に変換される点が異なります。 インスタンスの構築時、またはそのメソッド呼び出しのパラメーターとして明示的なロケールが指定されていない場合は、 java.util.Locale.Category#FORMAT default locale
そのロケールが使用されます。
<h4>"dgen">General</h4>
次の一般的な変換は、任意の引数の型に適用できます。
<table class="striped"><caption style="display:none">dgConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'b'
td style="vertical-align:top">'\u0062'
<td> によって返される "true
" または "false
" が生成されます。Boolean#toString(boolean)
引数が指定されている null
場合、結果は "false
" になります。 引数が a boolean
または Boolean
の場合、結果は String#valueOf(boolean) String.valueOf()
. それ以外の場合、結果は "true
" になります。
フラグが '#'
指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'B'
td style="vertical-align:top">'\u0042'
<td> の大文字の'b'
バリアントです。
<tr><th scope="row" style="vertical-align:top">'h'
<td style="vertical-align:top">'\u0068'
<td> オブジェクトのハッシュ コード値を表す文字列を生成します。
結果は、 Integer.toHexString(arg.hashCode())
.
フラグが '#'
指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'H'
td style="vertical-align:top">'\u0048'
<td> の大文字の'h'
バリアントです。
<tr><th scope="row" style="vertical-align:top">'s'
<td style="vertical-align:top">'\u0073'
<td> 文字列を生成します。
引数が実装されている Formattable
場合は、その Formattable#formatTo formatTo
メソッドが呼び出されます。 それ以外の場合、結果は引数の toString()
メソッドを呼び出すことによって取得されます。
フラグが '#'
指定され、引数が a Formattable
でない場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'S'
td style="vertical-align:top">'\u0053'
<td> の大文字の's'
バリアントです。
</tbody></table>
一般的な変換には、次の "dFlags"> フラグが適用されます。
<table class="striped"><caption style="display:none">dFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'-'
<td style="vertical-align:top">'\u002d'
<td> Left は出力を正当化します。 フィールドの最小幅を埋めるために必要に応じて、変換された値の末尾にスペース ('\u0020'
) が追加されます。 幅が指定されていない場合は、a MissingFormatWidthException
がスローされます。 このフラグが指定されていない場合、出力は右揃えになります。
<tr><th scope="row" style="vertical-align:top">'#'
<td style="vertical-align:top">'\u0023'
<td> 出力には代替フォームを使用する必要があります。 フォームの定義は、変換によって指定されます。
</tbody></table>
"genWidth"> 幅は、出力に書き込まれる最小文字数です。 変換された値の長さが幅より小さい場合、出力は合計文字数が幅と等しくなるまで ('\u0020'
) 埋め込' '
まれます。 パディングは既定で左側にあります。 フラグが '-'
指定されている場合、パディングは右側に表示されます。 幅が指定されていない場合は、最小値はありません。
有効桁数は、出力に書き込まれる最大文字数です。 精度は幅の前に適用されるため、幅が有効桁数より大きい場合でも、出力は文字に切り捨てられます precision
。 有効桁数が指定されていない場合、文字数に明示的な制限はありません。
<h4>"dchar">Character</h4>
この変換は、〘にchar
Character
また、型byte
、Byte
、、short
および int
Integer
Short
戻true
り値にCharacter#isValidCodePoint
適用することもできます。 返された false
場合は、an IllegalFormatCodePointException
がスローされます。
<table class="striped"><caption style="display:none">charConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'c'
<td style="vertical-align:top">'\u0063'
<td> Unicode 文字表現で説明されているように、引数を Unicode 文字として書式設定します。 引数が補助文字を表す場合は、複数の 16 ビット char
を指定できます。
フラグが '#'
指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'C'
td style="vertical-align:top">'\u0043'
<td> の大文字の'c'
バリアントです。
</tbody></table>
全般 '-'
変換に定義されているフラグが適用されます。 フラグが '#'
指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
幅は、一般変換の場合と同じように定義されます。
有効桁数は適用されません。 有効桁数が指定されている場合は、an 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"> 数値ローカリゼーション アルゴリズム</b>
整数部、小数部、指数部 (データ型に応じて) の数字が取得されると、次の変換が適用されます。
<ol>
<li> 文字列内の各桁文字 d は、現在のロケールの java.text.DecimalFormatSymbols#getZeroDigit() 0 桁 z (d - ) に対して計算されたロケール固有の数字に置き換えられます。'0'
>+ z.
<li> 小数点区切り記号が存在する場合は、ロケール固有の java.text.DecimalFormatSymbols#getDecimalSeparator 小数点区切り記号が置き換えられます。
<li> ('\u002c'
) "L10nGroup">フラグが指定されている場合','
、ロケール固有の java.text.DecimalFormatSymbols#getGroupingSeparator グループ化区切り記号は、文字列の整数部分を最下位から最上位の桁数までスキャンし、ロケールの java.text.DecimalFormat#getGroupingSize() グループ化サイズで定義された間隔で区切り記号を挿入することによって挿入されます。
<li> フラグが '0'
指定されている場合、ロケール固有の java.text.DecimalFormatSymbols#getZeroDigit() の 0 桁が符号文字の後 (存在する場合) の後に挿入され、文字列の長さが要求されたフィールドの幅と等しくなるまで、最初の 0 以外の数字の前に挿入されます。
<li> 値が負の値でフラグが '('
指定されている場合は、 '('
('\u0028'
) が先頭に付加され、 ')'
('\u0029'
) が付加されます。
<li> 値が負の値 (または浮動小数点の負のゼロ) であり '('
、フラグが指定されていない場合 '-'
は、('\u002d'
) が先頭に付加されます。
<li> フラグが '+'
指定され、値が正またはゼロ (または浮動小数点正のゼロ '+'
) の場合は、a ('\u002b'
) が先頭に付加されます。
</ol>
値が NaN または正の無限大の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 値が負の無限大の場合、フラグが指定されている場合、出力は "(Infinity)" になります。それ以外の場合 '('
、出力は "-Infinity" になります。 これらの値はローカライズされません。
"dnint"><b> Byte、Short、Integer、Long </b>
次の変換は、、、Byte
、 short
int
Short
およびInteger
Long
long
に適用byte
できます。
<table class="striped"><caption style="display:none">IntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top">'\u0064'
<td> 引数を 10 進整数として書式設定します。 ローカリゼーション アルゴリズムが適用されます。
フラグが '0'
指定され、値が負の場合、符号の後にゼロパディングが発生します。
フラグが '#'
指定された場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top">'\u006f'
<td> 引数を 8 進数の整数として書式設定します。 ローカライズは適用されません。
x が負の場合、結果は、Byte#SIZE Byte、Short#SIZE Short、Integer#SIZE Integer、または Long#SIZE Long クラスの静的SIZE
フィールドによって返される型のビット数である値n
に 2<sup>n</sup> を追加することによって生成される符号なし値になります。
フラグが '#'
指定されている場合、出力は常に基数インジケーター '0'
で始まります。
フラグが '0'
指定されている場合、出力は、符号を示した後にフィールド幅の先頭にゼロが埋め込まれます。
If '('
, '+'
,' >'、または ','
フラグが指定されると、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top">'\u0078'
<td> 引数を 16 進数の整数として書式設定します。 ローカライズは適用されません。
x が負の場合、結果は、Byte#SIZE Byte、Short#SIZE Short、Integer#SIZE Integer、または Long#SIZE Long クラスの静的SIZE
フィールドによって返される型のビット数である値n
に 2<sup>n</sup> を追加することによって生成される符号なし値になります。
フラグが '#'
指定されている場合、出力は常に基数インジケーター "0x"
で始まります。
フラグが '0'
指定されている場合、出力は基数インジケーターまたは符号 (存在する場合) の後に先頭にゼロが付いたフィールド幅に埋め込まれます。
、、またはフラグが指定されている場合'('
は、a FormatFlagsConversionMismatchException
がスローされます。','
'+'
' '
<tr><th scope="row" style="vertical-align:top"><'X'
td style="vertical-align:top">'\u0058'
<td> の大文字の'x'
バリアントです。 数値を表す文字列全体が、(存在する場合) とすべての 16 進数 - 'f'
'a'
('\u0061'
'\u0066'
- ) を含む 'x'
String#toUpperCase の大文字に変換されます。
</tbody></table>
変換が 、、または'X'
両方の'0'
'#'
フラグが指定されている場合、結果には基数インジケーター ('0'
8 進数または "0X"
"0x"
16 進数の場合)、ゼロの数 (幅に基づく)、値が含まれます。 'x'
'o'
フラグが '-'
指定されていない場合、スペースの埋め込みは符号の前に行われます。
次の "intFlags"> フラグは、数値整数変換に適用されます。
<table class="striped"><caption style="display:none">intFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'+'
<td style="vertical-align:top">'\u002b'
<td> 出力には、すべての正の数値に正の符号を含める必要があります。 このフラグが指定されていない場合は、負の値にのみ符号が含まれます。
と' '
フラグの両方が'+'
指定されている場合は、an IllegalFormatFlagsException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><' '
td style="vertical-align:top">'\u0020'
<td> 出力には、負でない値に対して 1 つの余分なスペース ('\u0020'
) を含める必要があります。
と' '
フラグの両方が'+'
指定されている場合は、an IllegalFormatFlagsException
がスローされます。
<tr><th scope="row" style="vertical-align:top">'0'
<td style="vertical-align:top">'\u0030'
<td> : NaN または infinity を変換する場合を除き、出力を先頭の java.text.DecimalFormatSymbols#getZeroDigit ゼロで最小フィールド幅に埋め込む必要があります。 幅が指定されていない場合は、a MissingFormatWidthException
がスローされます。
と'0'
フラグの両方が'-'
指定されている場合は、an IllegalFormatFlagsException
がスローされます。
<tr><th scope="row" style="vertical-align:top">','
<td style="vertical-align:top">'\u002c'
<td ローカリゼーション アルゴリズムの "group" セクションで説明されているように、出力に> ロケール固有の java.text.DecimalFormatSymbols#getGroupingSeparator グループ区切り記号を含める必要があります。
<tr><th scope="row" style="vertical-align:top"><'('
td style="vertical-align:top"><'\u0028'
td> 出力の先頭に ('\u0028'
) を追加'('
し、('\u0029'
) を負の値に追加')'
する必要があります。
</tbody></table>
"intdFlags"> フラグが指定されていない場合、既定の書式設定は次のようになります。
<ul>
<li> 出力は li 負のwidth
><数値の中で右寄せされ、('\u002d'
) で'-'
始まる
<li> 正の数値とゼロには、符号または余分な先頭スペースは含まれません
<li> グループ区切り記号は含まれません
</ul>
"intWidth"> width は、出力に書き込まれる最小文字数です。 これには、記号、数字、グループ化区切り記号、基数インジケーター、かっこが含まれます。 変換された値の長さが幅より小さい場合、出力は、文字数の合計が width になるまでスペース ('\u0020'
) で埋め込まれます。 パディングは既定で左側にあります。 フラグが指定されている場合 '-'
、パディングは右側に表示されます。 幅が指定されていない場合は、最小値はありません。
有効桁数は適用されません。 有効桁数を指定すると、an IllegalFormatPrecisionException
がスローされます。
"dnbint"><b> BigInteger </b>
次の変換を適用 java.math.BigInteger
できます。
<table class="striped"><caption style="display:none">bIntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top">'\u0064'
<td> 出力を 10 進整数として書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。
フラグが '#'
指定 FormatFlagsConversionMismatchException
されている場合はスローされます。
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top">'\u006f'
<td> 底 8 の整数として出力を書式設定する必要があります。 ローカライズは適用されません。
x が負の場合、結果は ('\u002d'
) で始まる符号付き'-'
値になります。 プリミティブ型とは異なり、明示的なデータ型サイズを想定しないと、符号なし同等の値を作成できないため、この型に対して署名付き出力が許可されます。
x が正またはゼロで、フラグが'+'
指定されている場合、結果は ('\u002b'
) で'+'
始まります。
フラグが '#'
指定されている場合、出力は常にプレフィックスで '0'
始まります。
フラグが '0'
指定されている場合、出力は、符号を示した後にフィールド幅の先頭にゼロが埋め込まれます。
フラグが ','
指定された場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top">'\u0078'
<td> 出力を 16 進数の整数として書式設定する必要があります。 ローカライズは適用されません。
x が負の場合、結果は ('\u002d'
) で始まる符号付き'-'
値になります。 プリミティブ型とは異なり、明示的なデータ型サイズを想定しないと、符号なし同等の値を作成できないため、この型に対して署名付き出力が許可されます。
x が正またはゼロで、フラグが'+'
指定されている場合、結果は ('\u002b'
) で'+'
始まります。
フラグが '#'
指定されている場合、出力は常に基数インジケーター "0x"
で始まります。
フラグが '0'
指定されている場合、出力は基数インジケーターまたは符号 (存在する場合) の後に先頭にゼロが付いたフィールド幅に埋め込まれます。
フラグが ','
指定された場合は、a FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'X'
td style="vertical-align:top">'\u0058'
<td> の大文字の'x'
バリアントです。 数値を表す文字列全体が、(存在する場合) とすべての 16 進数 - 'f'
'a'
('\u0061'
'\u0066'
- ) を含む 'x'
String#toUpperCase の大文字に変換されます。
</tbody></table>
変換が 、または両方の'#'
'0'
フラグが指定されている場合、結果には基本インジケーター ('0'
8 進数と "0x"
"0X"
16 進数の場合)、ゼロの数 (幅に基づく)、および値が含まれます。'X'
'x'
'o'
フラグが '0'
指定され、値が負の場合、符号の後にゼロパディングが発生します。
フラグが '-'
指定されていない場合、スペースの埋め込みは符号の前に行われます。
Byte、Short、Integer、Long に定義されているすべてのフラグが適用されます。 フラグが指定されていない場合の既定の動作は、Byte、Short、Integer、Long の場合と同じです。
幅の指定は、Byte、Short、Integer、Long に定義されているのと同じです。
有効桁数は適用されません。 有効桁数を指定すると、an IllegalFormatPrecisionException
がスローされます。
"dndec"><b> Float and Double</b>
次の変換を 、、double
およびDouble
にfloat
Float
適用できます。
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'e'
td style="vertical-align:top">'\u0065'
<td> "scientific">computerized scientific notation. ローカリゼーション アルゴリズムが適用されます。
大きさ m の書式設定は、その値によって異なります。
m が NaN または無限の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 これらの値はローカライズされません。
m が正のゼロまたは負のゼロの場合、指数は "+00"
.
それ以外の場合、結果は引数の符号と大きさ (絶対値) を表す文字列になります。 符号の書式設定は、ローカリゼーション アルゴリズムで説明します。 大きさ m の書式設定は、その値によって異なります。
n を 10<sup>n</sup> <= m < 10<sup>n+1</sup> のような一意の整数にし、数学的に正確な m と 10<sup>n</sup> の商を 1 <= a < に設定します。10. その後、大きさは、a の整数部分として表され、その後に小数点区切り記号が続き、その後に a の小数部を表す 10 進数が続き、その後に小文字のロケール固有の java.text.DecimalFormatSymbols#getExponentSeparator 指数区切り記号 (例: 'e'
)、指数の符号、n が 10 進数で表されます。 メソッドLong#toString(long, int)
によって生成され、少なくとも 2 桁の数字を含むように 0 を埋め込みます。
m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が、返されるFloat#toString(float)
Double#toString(double)
文字列の小数点の後に表示される桁数より小さい場合、値は java.math.RoundingMode#HALF_UP 丸め半分のアルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、必要に応じて使用 Float#toString(float)
します Double#toString(double)
。
フラグが ','
指定されている場合は、an FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'E'
td style="vertical-align:top">'\u0045'
<td> の大文字の'e'
バリアントです。 指数記号は、大文字ロケール固有の java.text.DecimalFormatSymbols#getExponentSeparator 指数区切り記号 (例: ) になります。 'E'
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top">'\u0067'
<td> 以下で説明するように、出力を一般的な科学的表記で書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。
精度の丸め後、結果の大きさ m の書式設定は、その値によって異なります。
m が 10<sup-4></sup 以上で、10 sup>精度</sup>> 未満の場合は、10<進形式で表されます。
m が 10<sup-4<>/sup> 未満または 10<sup>精度</sup> 以上の場合は、コンピューター化された科学的表記で表されます。
m の有効桁数の合計は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が次の場合は 0
、次の値が使用されます 1
。
フラグが '#'
指定されている場合は、an FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'G'
td style="vertical-align:top">'\u0047'
<td> の大文字の'g'
バリアントです。
<tr><th scope="row" style="vertical-align:top"><'f'
td style="vertical-align:top">'\u0066'
<td> "decimal"decimal">decimal 形式を使用して出力を書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。
結果は、引数の符号と大きさ (絶対値) を表す文字列になります。 符号の書式設定は、ローカリゼーション アルゴリズムで説明します。 大きさ m の書式設定は、その値によって異なります。
m NaN または infinite の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。 これらの値はローカライズされません。
この大きさは、m の整数部分として書式設定され、先頭にゼロが付けず、その後に小数点区切り記号が続き、m の小数部を表す 1 つ以上の 10 進数が続きます。
m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が、返されるFloat#toString(float)
Double#toString(double)
文字列の小数点の後に表示される桁数より小さい場合、値は java.math.RoundingMode#HALF_UP 丸め半分のアルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現の場合は、必要に応じて使用 Float#toString(float)
します Double#toString(double)
。
<tr><th scope="row" style="vertical-align:top">'a'
<td style="vertical-align:top">'\u0061'
<td> 出力を 16 進数の指数形式で書式設定する必要があります。 ローカライズは適用されません。
結果は、引数 x の符号と大きさ (絶対値) を表す文字列になります。
x が負または負のゼロの値の場合、結果は ('\u002d'
) で'-'
始まります。
x が正または正のゼロの値で、フラグが'+'
指定されている場合、結果は ('\u002b'
) で'+'
始まります。
大きさ m の書式設定は、その値によって異なります。
<ul>
<li> 値が NaN または無限の場合、リテラル文字列 "NaN" または "Infinity" がそれぞれ出力されます。
<li> m が 0 の場合は、文字列"0x0.0p0"
で表されます。
<li> m が正規化された表現をdouble
持つ値である場合、部分文字列は仮数フィールドと指数フィールドを表すために使用されます。 仮数は、文字 "0x1."
の後に残りの小数部の 16 進表現で表されます。 指数は、指数値を呼び出Integer#toString(int) Integer.toString
すことによって'p'
生成されるかのように、('\u0070'
) の後に偏りのない指数の 10 進文字列で表されます。 有効桁数が指定されている場合、値は指定された 16 進数の数に丸められます。
<li m が非正規表現を持つ値である場合、有効桁数が 1 から 12 の範囲に指定されていない限り、意味は文字'0x0.'
で表され、その後に残りの部分の 16 進表現が分数として、指数が表されます'p-1022'
。double
> 有効桁数が間隔 [1, 内にある場合12]、非正規値は、文字 '0x1.'
で始まり、有効桁数の 16 進数に丸められ、それに応じて指数が調整されるように正規化されます。 非正規仮数には、0 以外の数字が少なくとも 1 つ必要であることに注意してください。
</ul>
またはフラグが'('
指定されている場合は、a FormatFlagsConversionMismatchException
がスロー','
されます。
<tr><th scope="row" style="vertical-align:top"><'A'
td style="vertical-align:top">'\u0041'
<td> の大文字の'a'
バリアントです。 数値を表す文字列全体は、() と (およびすべての 16 進数'\u0061'
- 'f'
- 'a'
'\u0066'
('\u0070'
) を含む'x'
大文字に変換されます。'\u0078'
'p'
</tbody></table>
Byte、Short、Integer、Long に定義されているすべてのフラグが適用されます。
フラグが '#'
指定されている場合、小数点区切り記号は常に存在します。
"floatdFlags"> フラグが指定されていない場合、既定の書式設定は次のようになります。
<ul>
<li> 出力は li> 負の数値の中でwidth
<右揃えで、li 正の数値で'-'
<>始まり、正のゼロには符号または余分な先頭スペースが含まれません
<li> グループ区切り記号は含まれません
<li> 小数点記号は、その後に数字が続く場合にのみ表示されます。
</ul>
"floatDWidth"> 幅は、出力に書き込まれる最小文字数です。 これには、任意の符号、数字、グループ化区切り記号、小数点区切り記号、指数記号、基数インジケーター、かっこ、および必要に応じて無限大と NaN を表す文字列が含まれます。 変換された値の長さが幅より小さい場合、出力は、文字数の合計が width になるまでスペース ('\u0020'
) で埋め込まれます。 パディングは既定で左側にあります。 フラグが '-'
指定されている場合、パディングは右側にあります。 幅が指定されていない場合は、最小値はありません。
"floatDPrec"> 変換が 'e'
、 'E'
または 'f'
場合、有効桁数は小数点区切り記号の後の桁数です。 有効桁数が指定されていない場合は、次のように見な 6
されます。
変換 'g'
が or 'G'
の場合、有効桁数は、丸めた後の結果の大きさの有効桁数の合計です。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が次の場合は 0
、次の値が使用されます 1
。
変換 'a'
が or 'A'
の場合、有効桁数は基数ポイントの後の 16 進数の桁数です。 有効桁数が指定されていない場合は、返されるすべての Double#toHexString(double)
数字が出力されます。
"dnbdec"><b> BigDecimal </b>
次の変換を適用 java.math.BigDecimal BigDecimal
できます。
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'e'
td style="vertical-align:top">'\u0065'
<td> "bscientific">computerized scientific notation. ローカリゼーション アルゴリズムが適用されます。
大きさ m の書式設定は、その値によって異なります。
m が正のゼロまたは負のゼロの場合、指数は "+00"
.
それ以外の場合、結果は引数の符号と大きさ (絶対値) を表す文字列になります。 符号の書式設定は、ローカリゼーション アルゴリズムで説明します。 大きさ m の書式設定は、その値によって異なります。
n を 10<sup>n</sup> <= m < 10<sup>n+1</sup> のような一意の整数にし、数学的に正確な m と 10<sup>n</sup> の商を 1 <= a < に設定します。10. その後、この大きさは、a の整数部分として表され、1 つの 10 進数字として表され、その後に小数点区切り記号の後に a の小数部を表す 10 進数が続き、指数記号 'e'
('\u0065'
) が続き、指数の符号が続き、メソッドLong#toString(long, int)
によって生成された n が 10 進整数として表現されます。 少なくとも 2 桁の数字を含むように、0 を埋め込みます。
m または a の小数部の結果の桁数は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が小数点の右側の桁数より小さい場合、値は java.math.RoundingMode#HALF_UP 丸め半分のアルゴリズムを使用して丸められます。 それ以外の場合は、有効桁数に達するためにゼロを追加できます。 値の正規表現には、BigDecimal#toString()
フラグが ','
指定されている場合は、an FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'E'
td style="vertical-align:top">'\u0045'
<td> の大文字の'e'
バリアントです。 指数記号は ('\u0045'
) になります'E'
。
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top">'\u0067'
<td> 以下で説明するように、出力を一般的な科学的表記で書式設定する必要があります。 ローカリゼーション アルゴリズムが適用されます。
精度の丸め後、結果の大きさ m の書式設定は、その値によって異なります。
m が 10<sup-4></sup 以上で、10 sup>精度</sup>> 未満の場合は、10<進形式で表されます。
m が 10<sup-4<>/sup> 未満または 10<sup>精度</sup> 以上の場合は、コンピューター化された科学的表記で表されます。
m の有効桁数の合計は、有効桁数と等しくなります。 有効桁数が指定されていない場合、既定値は 6
. 有効桁数が次の場合は 0
、次の値が使用されます 1
。
フラグが '#'
指定されている場合は、an FormatFlagsConversionMismatchException
がスローされます。
<tr><th scope="row" style="vertical-align:top"><'G'
td style="vertical-align:top">'\u0047'
<td> の大文字の'g'
バリアントです。
<tr><th scope="row" style="vertical-align:top"><'f'
td style="vertical-align:top">'\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>
この変換は、,, Long
, Calendar
and TemporalAccessor TemporalAccessor
<Date
table class="striped"<>caption style="display:none"DTConv</caption><tbody に>適用long
できます。>
<tr><th scope="row" style="vertical-align:top">'t'
<td style="vertical-align:top">'\u0074'
<td> Prefix for date and time conversion characters. <tr><th scope="row" style="vertical-align:top"><'T'
td style="vertical-align:top">'\u0054'
<td> の大文字の't'
バリアントです。
</tbody></table>
次の日付と時刻の変換文字サフィックスは、変換'T'
に対して't'
定義されています。 型は GNU date
および POSIX strftime(3c)
で定義されているものと似ていますが、完全には同じではありません。 Java 固有の機能にアクセスするための追加の変換の種類が用意されています (たとえば 'L'
、ミリ秒単位)。
書式設定には、次の変換文字が使用されます。
<table class="striped"><caption style="display:none">time</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'H'
<td style="vertical-align:top"><'\u0048'
td> Hour of the day for the 24-hour clock, formatted as two digits with a leading zero as necessary, e. 00 - 23
00
corresponds to midnight.
<tr><th scope="row" style="vertical-align:top"><'I'
td style="vertical-align:top">'\u0049'
<td> Hour for the 12-hour, formatted as two digits with a leading zero as necessary, e. 01 - 12
01
は 1 時 (午前または午後) に対応します。
<tr><th scope="row" style="vertical-align:top">'k'
<td style="vertical-align:top"><'\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"><'\u006c'
td> Hour for the 12-hour, つまり . は 1 時 (午前または午後) に対応します。 1 - 12
1
<tr><th scope="row" style="vertical-align:top"><'M'
td style="vertical-align:top">'\u004d'
<td> Minute within the hour formatted as two digits with a leading zero as necessary, e. 00 - 59
<tr><th scope="row" style="vertical-align:top">'S'
<td style="vertical-align:top"><'\u0053'
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 style="vertical-align:top">'\u004c'
<td> Millisecond 。必要に応じて先頭に 0 が付いた 3 桁の数字で書式設定された 2 番目のミリ秒単位。つまり、 . 000 - 999
<tr><th scope="row" style="vertical-align:top"><'N'
td style="vertical-align:top">'\u004e'
<td> Nanosecond within the second, formatted as nine digits with leading zeros as necessary, e. 000000000 - 999999999
この値の精度は、基になるオペレーティング システムまたはハードウェアの解像度によって制限されます。
<tr><th scope="row" style="vertical-align:top"td style="><'p'
vertical-align:top"><'\u0070'
td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, e.g."am
または "pm
" です。 変換プレフィックス 'T'
を使用すると、この出力が大文字になります。 (小文字の出力が生成されることに 'p'
注意してください。これは、大文字の出力を生成する GNU date
や POSIX strftime(3c)
とは異なります。
<tr><th scope="row" style="vertical-align:top">'z'
<td style="vertical-align:top"><'\u007a'
td>RFC 822 style numeric time zone offset from GMT, 例: . -0800
この値は、夏時間に必要に応じて調整されます。 long
、Long
およびDate
使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。
<tr><th scope="row" style="vertical-align:top">'Z'
<td style="vertical-align:top">'\u005a'
<td> タイム ゾーンの省略形を表す文字列。 この値は、夏時間に必要に応じて調整されます。 long
、Long
およびDate
使用されるタイム ゾーンは、Java 仮想マシンのこのインスタンスの TimeZone#getDefault() の既定のタイム ゾーンです。 フォーマッタのロケールは、引数のロケール (存在する場合) よりも優先されます。
<tr><th scope="row" style="vertical-align:top">'s'
<td style="vertical-align:top">'\u0073'
<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 style="vertical-align:top">'\u004f'
<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"><caption style="display:none">date</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'B'
<td style="vertical-align:top"><'\u0042'
td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, 例: "January"
, . "February"
<tr><th scope="row" style="vertical-align:top">'b'
<td style="vertical-align:top"><'\u0062'
td> Locale-specific java.text.DateFormatSymbols#getShortMonths 省略された月の名前 (例: . "Feb"
"Jan"
<tr><th scope="row" style="vertical-align:top"><'h'
td style="vertical-align:top">'\u0068'
<td> Same as 'b'
.
<tr><th scope="row" style="vertical-align:top"><'A'
td style="vertical-align:top"><'\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"><'\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">'\u0043'
<td> 4 桁の年を 2 桁で100
除算し、必要に応じて先頭に 0 を付けて書式設定します。 つまり<00 - 99
、tr><th scope="row" style="vertical-align:top"td style="'Y'
><vertical-align:top">'\u0059'
<td> Year。必要に応じて先頭にゼロが付いた 4 桁以上に書式設定されます。たとえば0092
、グレゴリオ暦の CE と等しくなります。92
<tr><th scope="row" style="vertical-align:top"><'y'
td style="vertical-align:top">'\u0079'
<td> Last 2 digits of the year, formatted with leading zeros as necessary, e. 00 - 99
<tr><th scope="row" style="vertical-align:top"><'j'
td style="vertical-align:top">'\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">'\u006d'
<td> Month, formatted as two digits with leading zeros as required, すなわち01 - 13
, where "01
" is the first month of the year and ("13
" is a special value required to support lunar calendars).
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top"><'\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"><'\u0065'
td> Day of month, formatted as two digits, つまり 1 - 31
"1
" is the first day of the month.
</tbody></table>
次の変換文字は、一般的な日付/時刻構成の書式設定に使用されます。
<table class="striped"><caption style="display:none">composites</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'R'
td style="vertical-align:top"><'\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"'\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">'\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">'\u0044'
<td> Date formatted as "%tm/%td/%ty"
.
<tr><th scope="row" style="vertical-align:top">'F'
<td style="vertical-align:top"><'\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"><'\u0063'
td> Date and time formatted as "%ta %tb %td %tT %tZ %tY"
, 例: . "Sun Jul 20 16:17:00 EDT 1969"
</tbody></table>
全般 '-'
変換に定義されているフラグが適用されます。 フラグが '#'
指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
幅は、出力に書き込まれる最小文字数です。 変換された値の長さがそれより小さい width
場合、出力は、文字数の合計が幅になるまでスペース ('\u0020'
) で埋め込まれます。 パディングは既定で左側にあります。 フラグが '-'
指定されている場合、パディングは右側にあります。 幅が指定されていない場合は、最小値はありません。
有効桁数は適用されません。 有効桁数が指定されている場合は、an IllegalFormatPrecisionException
がスローされます。
<h4>"dper">Percent</h4>
変換はどの引数にも対応していません。
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'%'
<td> 結果はリテラル '%'
()'\u0025'
幅は、出力 '%'
に書き込まれる最小文字数です。 変換された値の長さがそれより小さい width
場合、出力は、文字数の合計が幅になるまでスペース ('\u0020'
) で埋め込まれます。 パディングは左側にあります。 width が指定されていない場合は、 '%'
出力のみが出力されます。
全般 '-'
変換に定義されているフラグが適用されます。 他のフラグが指定されている場合は、a FormatFlagsConversionMismatchException
がスローされます。
有効桁数は適用されません。 有効桁数が指定されている場合は、スロー IllegalFormatPrecisionException
されます。
</tbody></table>
<h4>"dls">Line Separator</h4>
変換はどの引数にも対応していません。
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'n'
<td> the platform-specific line separator as returned by System#lineSeparator()
.
</tbody></table>
フラグ、幅、および有効桁数は適用されません。 いずれかが指定IllegalFormatFlagsException
されている場合は、IllegalFormatWidthException
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")
// -> "d c b a d c b a"
</blockquote>
<li>相対インデックス作成は、書式指定子に ('\u003c'
) フラグが含まれている'<'
場合に使用されます。これにより、前の書式指定子の引数が再利用されます。 前の引数がない場合は、a MissingFormatArgumentException
がスローされます。
<blockquote>
formatter.format("%s %s %<s %<s", "a", "b", "c", "d")
// -> "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")
// -> "a b c d"
</blockquote>
</ul>
次に例を示す、すべての形式のインデックス作成を使用する書式指定文字列を含めることもできます。
<blockquote>
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
</blockquote>
引数の最大数は、Java> で定義されている Java 配列の最大次元によって<>制限されます。仮想マシンの仕様</引用>。 引数インデックスが使用可能な引数に対応していない場合は、a MissingFormatArgumentException
がスローされます。
書式指定子よりも多くの引数がある場合、余分な引数は無視されます。
特に指定しない限り、このクラスのメソッドまたはコンストラクターに引数を渡 null
すと、a NullPointerException
がスローされます。
1\.5 で追加されました。
の Java ドキュメントjava.util.Formatter
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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 |
この |
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() |
このフォーマッタ |
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 スタイルの書式指定文字列のインタープリター。 |