java.lang.Object
java.util.FormatProcessor
- すべての実装されたインタフェース:
StringTemplate.ProcessorPREVIEW<String,
,RuntimeException> StringTemplate.Processor.LinkagePREVIEW
public final class FormatProcessor extends Object implements StringTemplate.ProcessorPREVIEW<String,RuntimeException>, StringTemplate.Processor.LinkagePREVIEW
FormatProcessor
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
この
前述の例では、
前述の例では、
前述の例では、
前述の例では、
StringTemplate.Processor
PREVIEWは、Formatter
の仕様およびStringTemplate
PREVIEWにある値を使用して、String
の結果を構築します。 Formatter
とは異なり、FormatProcessor
PREVIEWは、空白なしで、直後に続く埋込み式の値を使用します。「書式指定子」。 たとえば、
FormatProcessor fmt = FormatProcessor.create(Locale.ROOT);
int x = 10;
int y = 20;
String result = fmt."%05d\{x} + %05d\{y} = %05d\{x + y}";
result
の値は"00010 + 00020 = 00030"
になります。
フォーマット指定子を先行しない埋込み式では、デフォルトで%s
を使用します。
FormatProcessor fmt = FormatProcessor.create(Locale.ROOT);
int x = 10;
int y = 20;
String result1 = fmt."\{x} + \{y} = \{x + y}";
String result2 = fmt."%s\{x} + %s\{y} = %s\{x + y}";
result1
およびresult2
の値は、両方とも"10 + 20 = 30"
になります。
使用されるFormatProcessor
PREVIEW書式指定およびスローされる例外は、Formatter
のものと同じです。
ただし、引数の位置には2つの大きな違いがあります。 明示的なn$
索引および相対<
索引は、引数リストが欠落しているために例外を引き起こします。 仕様と埋込み式の間に空白が表示されると、例外も発生します。
FormatProcessor
PREVIEWでは、様々なロケールを使用できます。 たとえば、
Locale locale = Locale.forLanguageTag("th-TH-u-nu-thai");
FormatProcessor thaiFMT = FormatProcessor.create(locale);
int x = 10;
int y = 20;
String result = thaiFMT."%4d\{x} + %4d\{y} = %5d\{x + y}";
result
の値は" ๑๐ + ๒๐ = ๓๐"
になります。
日常的に使用する場合は、事前定義済のFMT
FormatProcessor
PREVIEWを使用できます。 FMT
は、Locale.ROOT
を使用して定義されます。 例:
int x = 10;
int y = 20;
String result = FMT."0x%04x\{x} + 0x%04x\{y} = 0x%04x\{x + y}";
result
の値は"0x000a + 0x0014 = 0x001E"
になります。- 導入されたバージョン:
- 21
- 関連項目:
-
ネストされたクラスのサマリー
インタフェースjava.lang.StringTemplate.ProcessorPREVIEWで宣言されたネストされたクラス/インタフェース
StringTemplate.Processor.LinkagePREVIEW
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final FormatProcessorPREVIEW
この事前定義済のFormatProcessor
PREVIEWインスタンスは、Locale.ROOTLocale
を使用してString
結果を構成します。 -
メソッドのサマリー
修飾子と型メソッド説明static FormatProcessorPREVIEW
指定されたロケールを使用して、新しいFormatProcessor
PREVIEWを作成します。linkage
(List<String> fragments, MethodType type) MethodHandle
を作成します。StringTemplate
PREVIEWの値とともに指定すると、process(StringTemplate)
によって提供される結果と同等の結果が生成されます。final String
process
(StringTemplatePREVIEW stringTemplate) フラグメント、フラグメントで見つかったフォーマット仕様、および指定されたStringTemplate
PREVIEWオブジェクトの値に基づいてString
を構築します。
-
フィールド詳細
-
FMT
public static final FormatProcessorPREVIEW FMTこの事前定義済のFormatProcessor
PREVIEWインスタンスは、Locale.ROOTLocale
を使用してString
結果を構成します。 詳細は、FormatProcessor
PREVIEWを参照してください。 例:int x = 10; int y = 20; String result = FMT."0x%04x\{x} + 0x%04x\{y} = 0x%04x\{x + y}";
result
の値は"0x000a + 0x0014 = 0x001E"
になります。- 関連項目:
-
-
メソッドの詳細
-
create
public static FormatProcessorPREVIEW create(Locale locale) 指定されたロケールを使用して、新しいFormatProcessor
PREVIEWを作成します。- パラメータ:
locale
- 書式設定に使用されるLocale
- 戻り値:
FormatProcessor
PREVIEWの新しいインスタンス- 例外:
NullPointerException
- ロケールがnullの場合
-
process
public final String process(StringTemplatePREVIEW stringTemplate) フラグメント、フラグメントで見つかったフォーマット仕様、および指定されたStringTemplate
PREVIEWオブジェクトの値に基づいてString
を構築します。 このメソッドは、フラグメントから書式文字列を構築し、値を収集し、new Formatter(locale).format(format, values).toString()
をレートする場合と同様に式を評価します。埋込み式の直前に指定子が付いていない場合、書式に
%s
が挿入されます。- 定義:
- インタフェース
StringTemplate.ProcessorPREVIEW<String,
内のRuntimeException> process
- パラメータ:
stringTemplate
-StringTemplate
PREVIEWインスタンス- 戻り値:
- 構築
String
- 例外:
IllegalFormatException
- 書式指定子に不正な構文が含まれている場合、指定の引数と互換性のない書式指定子、指定子の直後に埋め込まれた式やその他の不正な条件が続いていません。 可能性のあるすべての書式設定エラーについては、フォーマッタ・クラスの指定の「詳細」の項を参照してください。NullPointerException
- stringTemplateがnullの場合- 関連項目:
-
linkage
public MethodHandle linkage(List<String> fragments, MethodType type) MethodHandle
を作成します。StringTemplate
PREVIEWの値とともに指定すると、process(StringTemplate)
によって提供される結果と同等の結果が生成されます。 このMethodHandle
は、FMT
とilkによって、より特殊な結果の構成を実行するために使用されます。 この専門は、StringTemplate
PREVIEWのフラグメントおよび値タイプを事前スキャンすることによって行います。プロセス・テンプレート式は、プロセッサが
StringTemplate.Processor.Linkage
PREVIEW型で、FMT
(static final FormatProcessor
)のように静的定数からフェッチされる場合に特殊化できます。その他の
FormatProcessors
PREVIEWは、静的finalに格納する場合に特殊化できます。 たとえば、FormatProcessor THAI_FMT = FormatProcessor.create(Locale.forLanguageTag("th-TH-u-nu-thai"));
THAI_FMT
は、linkage(List, MethodType)
を使用して特殊なMethodHandles
を生成するようになりました。 詳細は、process(StringTemplate)
を参照してください。- 定義:
- インタフェース
StringTemplate.Processor.LinkagePREVIEW
内のlinkage
- パラメータ:
fragments
- 文字列テンプレート・フラグメントtype
- メソッド・タイプ。StringTemplateレシーバおよび値タイプを含みます- 戻り値:
- テンプレートに適用されるプロセッサの
MethodHandle
- 例外:
IllegalFormatException
- 書式指定子に不正な構文が含まれている場合、指定の引数と互換性のない書式指定子、指定子の直後に埋め込まれた式やその他の不正な条件が続いていません。 可能性のあるすべての書式設定エラーについては、フォーマッタ・クラスの指定の「詳細」の項を参照してください。NullPointerException
- フラグメントまたはタイプがnullの場合- 関連項目:
-
FormatProcessor
を使用できます。