検索
ホームページJava&#&チュートリアルJava で MessageFormat 関数を使用してテキストの書式設定を行う方法

Java 言語の発展により、Java が提供するさまざまな API や関数がますます充実してきていますが、その中でも MessageFormat 関数は非常に実用的なテキスト整形ツールです。 MessageFormat 関数は、Java プログラム内の文字列をフォーマットし、生成された出力内のメッセージ内のプレースホルダーを自動的に置き換え、ロケール情報を保持して出力コンテンツをより正確にすることができます。この記事では、MessageFormat 関数を使用してテキストを書式設定する方法について詳しく説明します。

1. MessageFormat 関数とは
Java では、MessageFormat は、複雑なメッセージをフォーマットして出力するためのメソッドを提供するクラスです。 MessageFormat を使用すると、パラメーターを含むメッセージを定義し、そのメッセージに値を渡すだけで新しい出力メッセージを生成できます。 MessageFormat 関数の形式は次のとおりです。

MessageFormat.format(String pattern, Object ... argument)

pattern パラメーターはメッセージの形式を指定し、arguments パラメーターはプレースホルダーを置き換えます。実際の値のパラメータ配列を含むメッセージ内。たとえば、次のコードでは、MessageFormat 関数を使用して、名前、年齢、職業の文字列を挨拶にフォーマットします。

String name = "Xiao Ming";
int age = 22;
String job = "プログラマー";
Stringgreeting = MessageFormat.format("こんにちは、{0}、あなたは今年 {1} 歳で、{2} です。", name, age , job);
System.out.println(greeting);

出力結果は次のとおりです。 こんにちは、Xiao Ming、あなたは 22 歳のプログラマーです。

2. MessageFormat 関数の書式指定子
MessageFormat 関数では、プレースホルダーが実際の値に対応する必要があるため、書式指定子を使用する必要があります。形式指定子は、置換文字列の形式を決定するために使用されるマークアップ構文です。書式指定子の一般的な構造は次のとおりです。

{argument_index, format_type, format_style}

書式指定子には、パラメータ インデックス、書式タイプ、および書式スタイルの 3 つの部分が含まれていることに注意してください。パラメーター インデックスはパラメーター配列内で置換されるパラメーターの添字を指定し、形式タイプは置換されるパラメーターのデータ型を指定し、形式スタイルはパラメーターの形式に使用される文字列形式を指定します。

1. パラメーター インデックス
パラメーター インデックスは、パラメーター配列内で置き換えられるパラメーターの添字を指定する、プレースホルダー内の番号を指します。たとえば、上記のコードでは、プレースホルダー "{0}" は最初のパラメーター (文字列変数名) を指定します。

2. フォーマット タイプ
フォーマット タイプは、置換されるパラメータのデータ タイプを指します。MessageFormat 関数でサポートされるデータ タイプは次のとおりです:

  • Number: 数値
  • 日付と時刻: 日付、時刻
  • パーセント: パーセンテージ
  • 通貨: 通貨
  • カスタム タイプ: 選択

次の例は、書式タイプを使用して数値を書式設定し、プレースホルダーに置き換える方法を示しています。

int count = 123456;
String message = MessageFormat.format("We have { 0, number} users.", count);

出力結果は次のようになります: ユーザー数は 123,456 人です。

3. フォーマット スタイル
フォーマット スタイルは、パラメータのフォーマットに使用される文字列フォーマットを指します。書式スタイルの構文は、書式タイプによって異なります。次の例では、書式スタイルを使用して、日付と時刻を指定された形式に書式設定します。

Date now = new Date();
String message = MessageFormat.format("The current timeは { 0,time,HH:mm:ss} です。日付は {0,date,yyyy-MM-dd} です。", now);

出力結果は次のようになります: 現在の時刻は 14: 58:30。日付は2021-02-16です。

3. MessageFormat 関数を使用するための実践的なヒント
1. ローカリゼーションのサポート
Java では、ローカリゼーションは、さまざまな言語、文化、地域に合わせて正しくフォーマットされた文字列を提供するプロセスです。 MessageFormat 関数は、ローカリゼーション情報を考慮に入れることができます。たとえば、以下のコードでは、MessageFormat 関数を使用して日付をフォーマットし、指定された地域情報に基づいてローカライズされた日付を生成します:

int year = 2021;
int month = 2;
int day = 16;
String result = MessageFormat.format("日付は {0,date,MMM d, yyyy} です。",

new GregorianCalendar(year, month - 1, day));

System.out.println(result);

出力結果は次のようになります:

日付は 2021 年 2 月 16 日です。

2. 形式を選択します
次の内容に基づいて別の形式を選択する必要がある場合特定のパラメータの値には、形式タイプの選択を使用できます。選択により、MessageFormat 関数で使用する範囲に従って、パラメータの値を別の値にマップできます。たとえば、次のコードでは、選択を使用しますスコアをマッピングするためのフォーマット タイプ 成績の場合:

double Score = 0.9;
String result = MessageFormat.format("この生徒のスコアは {0,number,percent} です。成績は: {0 ,choice,0#不合格 |0

    score);

System.out. println(result);

出力結果は次のようになります:

この生徒のスコアは 90.00% です。成績は: Excellent.

3. プレースホルダーと修飾子のエスケープ
MessageFormat 関数を使用する場合、特別な意味を持つ文字 (「{」、「}」、「#」など) は二重中括弧「{{」と「}」を使用する必要があります。 }" 脱出する。形式指定子を変更する必要がある場合は、修飾子を使用できます。修飾子は、書式設定スタイルを追加または削除したり、それらに任意のテキストを追加したりできます。たとえば、以下のコードでは、修飾子を使用して出力の後に感嘆符を追加します。

String name = "Xiao Ming";
String result = MessageFormat.format("Welcome, {0 }! ", new Object[] { name });
System.out.println(result "{0,choice,-1#?データを確認してください|0#|1#!}");

出力結果は次のとおりです:

ようこそ、Xiao Ming!

この記事では、書式指定子、ローカリゼーションのサポート、書式の選択、プレースホルダーと修飾子のエスケープなどのテキスト書式設定に MessageFormat 関数を使用する方法について説明します。さらに、MessageFormat 関数は、USB メッセージのフォーマット、HTML ページのフォーマット、電子メールのフォーマットなどにも使用できます。 MessageFormat 関数の使用方法の詳細については、公式 Java ドキュメントと API ドキュメントを参照してください。 MessageFormat 関数は、Java プログラミングにおける非常に実用的なツールであり、テキストやメッセージをより効率的にフォーマットするのに役立ちます。

以上がJava で MessageFormat 関数を使用してテキストの書式設定を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Java開発のどの側面がプラットフォームに依存していますか?Java開発のどの側面がプラットフォームに依存していますか?Apr 26, 2025 am 12:19 AM

javadevelopmentisnotentirelylylypratform-IndopentDuetoseveralfactors.1)jvmvariationsaffectperformanceandbehavioracrossdifferentos.2)nativeLibrariesviajniintroducePlatform-specificissues.3)giaiasystemsdifferbeTioneplateplatifflics.4)

さまざまなプラットフォームでJavaコードを実行するときにパフォーマンスの違いはありますか?なぜ?さまざまなプラットフォームでJavaコードを実行するときにパフォーマンスの違いはありますか?なぜ?Apr 26, 2025 am 12:15 AM

Javaコードは、さまざまなプラットフォームで実行するときにパフォーマンスの違いがあります。 1)JVMの実装と最適化戦略は、OracleJDKやOpenJDKなどとは異なります。 2)メモリ管理やスレッドスケジューリングなどのオペレーティングシステムの特性もパフォーマンスに影響します。 3)適切なJVMを選択し、JVMパラメーターとコード最適化を調整することにより、パフォーマンスを改善できます。

Javaのプラットフォームの独立性の制限は何ですか?Javaのプラットフォームの独立性の制限は何ですか?Apr 26, 2025 am 12:10 AM

java'splatformindepentedencehaslimitationsincludingporformanceoverhead、versioncompatibulisisues、changleSwithnativeLibraryIntegration、プラットフォーム固有の機能、およびjvminStallation/maintenation。

プラットフォームの独立性とクロスプラットフォーム開発の違いを説明します。プラットフォームの独立性とクロスプラットフォーム開発の違いを説明します。Apr 26, 2025 am 12:08 AM

PlatformEndependEncealLowsProgramStorunonAnyPlatformWithOdification、whilecross-platformdevelopmentReadreessomeplatform-specificAdjustments.platformindependence、explifiedByjava、unableSiversAlexecutionButMayCompromperformance

ジャストインタイム(JIT)コンピレーションは、Javaのパフォーマンスとプラットフォームの独立性にどのような影響を与えますか?ジャストインタイム(JIT)コンピレーションは、Javaのパフォーマンスとプラットフォームの独立性にどのような影響を与えますか?Apr 26, 2025 am 12:02 AM

jitcompalilationinjavaenhancesperformance whelemaintaining formindepence.1)itdynamicallyTrantesiNTODENATIVEMACHINECODEATRUNTIME、最適化されたコードを最適化すること、

Javaがクロスプラットフォームデスクトップアプリケーションを開発するための人気のある選択肢なのはなぜですか?Javaがクロスプラットフォームデスクトップアプリケーションを開発するための人気のある選択肢なのはなぜですか?Apr 25, 2025 am 12:23 AM

javaispopularforsoss-platformdesktopapplicationsduetoits "writeonce、runaynay" philosophy.1)itusesbytecodatiTatrunnanyjvm-adipplatform.2)ライブラリリケンディンガンドジャヴァフククレアティック - ルルクリス

Javaでプラットフォーム固有のコードを作成する必要がある場合がある状況について話し合います。Javaでプラットフォーム固有のコードを作成する必要がある場合がある状況について話し合います。Apr 25, 2025 am 12:22 AM

Javaでプラットフォーム固有のコードを作成する理由には、特定のオペレーティングシステム機能へのアクセス、特定のハードウェアとの対話、パフォーマンスの最適化が含まれます。 1)JNAまたはJNIを使​​用して、Windowsレジストリにアクセスします。 2)JNIを介してLinux固有のハードウェアドライバーと対話します。 3)金属を使用して、JNIを介してMacOSのゲームパフォーマンスを最適化します。それにもかかわらず、プラットフォーム固有のコードを書くことは、コードの移植性に影響を与え、複雑さを高め、パフォーマンスのオーバーヘッドとセキュリティのリスクをもたらす可能性があります。

プラットフォームの独立性に関連するJava開発の将来の傾向は何ですか?プラットフォームの独立性に関連するJava開発の将来の傾向は何ですか?Apr 25, 2025 am 12:12 AM

Javaは、クラウドネイティブアプリケーション、マルチプラットフォームの展開、および言語間の相互運用性を通じて、プラットフォームの独立性をさらに強化します。 1)クラウドネイティブアプリケーションは、GraalvmとQuarkusを使用してスタートアップ速度を向上させます。 2)Javaは、埋め込みデバイス、モバイルデバイス、量子コンピューターに拡張されます。 3)Graalvmを通じて、JavaはPythonやJavaScriptなどの言語とシームレスに統合して、言語間の相互運用性を高めます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール