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.ProcessorPREVIEWは、Formatterの仕様およびStringTemplatePREVIEWにある値を使用して、Stringの結果を構築します。 Formatterとは異なり、FormatProcessorPREVIEWは、空白なしで、直後に続く埋込み式の値を使用します。「書式指定子」。 たとえば、
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"になります。
使用されるFormatProcessorPREVIEW書式指定およびスローされる例外は、Formatterのものと同じです。
ただし、引数の位置には2つの大きな違いがあります。 明示的なn$索引および相対<索引は、引数リストが欠落しているために例外を引き起こします。 仕様と埋込み式の間に空白が表示されると、例外も発生します。
FormatProcessorPREVIEWでは、様々なロケールを使用できます。 たとえば、
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 FormatProcessorPREVIEWを使用できます。 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この事前定義済のFormatProcessorPREVIEWインスタンスは、Locale.ROOTLocaleを使用してString結果を構成します。 -
メソッドのサマリー
修飾子と型メソッド説明static FormatProcessorPREVIEW指定されたロケールを使用して、新しいFormatProcessorPREVIEWを作成します。linkage(List<String> fragments, MethodType type) MethodHandleを作成します。StringTemplatePREVIEWの値とともに指定すると、process(StringTemplate)によって提供される結果と同等の結果が生成されます。final Stringprocess(StringTemplatePREVIEW stringTemplate) フラグメント、フラグメントで見つかったフォーマット仕様、および指定されたStringTemplatePREVIEWオブジェクトの値に基づいてStringを構築します。
-
フィールド詳細
-
FMT
public static final FormatProcessorPREVIEW FMTこの事前定義済のFormatProcessorPREVIEWインスタンスは、Locale.ROOTLocaleを使用してString結果を構成します。 詳細は、FormatProcessorPREVIEWを参照してください。 例:前述の例では、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) 指定されたロケールを使用して、新しいFormatProcessorPREVIEWを作成します。- パラメータ:
locale- 書式設定に使用されるLocale- 戻り値:
FormatProcessorPREVIEWの新しいインスタンス- 例外:
NullPointerException- ロケールがnullの場合
-
process
public final String process(StringTemplatePREVIEW stringTemplate) フラグメント、フラグメントで見つかったフォーマット仕様、および指定されたStringTemplatePREVIEWオブジェクトの値に基づいてStringを構築します。 このメソッドは、フラグメントから書式文字列を構築し、値を収集し、new Formatter(locale).format(format, values).toString()をレートする場合と同様に式を評価します。埋込み式の直前に指定子が付いていない場合、書式に
%sが挿入されます。- 定義:
- インタフェース
StringTemplate.ProcessorPREVIEW<String,内のRuntimeException> process - パラメータ:
stringTemplate-StringTemplatePREVIEWインスタンス- 戻り値:
- 構築
String - 例外:
IllegalFormatException- 書式指定子に不正な構文が含まれている場合、指定の引数と互換性のない書式指定子、指定子の直後に埋め込まれた式やその他の不正な条件が続いていません。 可能性のあるすべての書式設定エラーについては、フォーマッタ・クラスの指定の「詳細」の項を参照してください。NullPointerException- stringTemplateがnullの場合- 関連項目:
-
linkage
public MethodHandle linkage(List<String> fragments, MethodType type) MethodHandleを作成します。StringTemplatePREVIEWの値とともに指定すると、process(StringTemplate)によって提供される結果と同等の結果が生成されます。 このMethodHandleは、FMTとilkによって、より特殊な結果の構成を実行するために使用されます。 この専門は、StringTemplatePREVIEWのフラグメントおよび値タイプを事前スキャンすることによって行います。プロセス・テンプレート式は、プロセッサが
StringTemplate.Processor.LinkagePREVIEW型で、FMT(static final FormatProcessor)のように静的定数からフェッチされる場合に特殊化できます。その他の
FormatProcessorsPREVIEWは、静的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を使用できます。