実際、私はそれを覚えていないので、技術的なコンテンツはありませんので、この記事に記録します。
通常、アプリケーションシステムには多くのSMSメッセージがあり、メッセージなどに多くのメッセージがありますが、これらのメッセージには、ユーザー名の変更など、同じ共通性があります。
以下のように、赤いフォントを除いて、残りは同じです。
親愛なる顧客:Alipayアカウント110 **** 11契約オンラインマーチャントローンは、2018-06-10に1999.99元を返済する必要があります。このシステムは、2018-06-10に、Alipayアカウント、Bound Savingsカード、Yu'ebao、You'e'ebao、およびYu'ebaoの残高を自動的に差し引きます。残高と貯蓄カードローンの返済の制限が限られているため、Yu'ebao、銀行の決済口座、およびYu'ebaoの残高が十分であることを確認するための優先順位を与えてください。 (すでに返済している場合は、この情報を無視してください)[反コマース銀行]
学生ごとに異なる解決策がある場合があります。参照のための私のソリューションは次のとおりです。もちろん、より良い解決策がある場合は、共有できます〜
ソリューション1:ハードコーディングモード
コードでハードコードするか、構成ファイルを読み取ることができます。コーディングの経験がある学生は書くべきです
利点:メッセージコンテンツは直感的であり、テキストメッセージコンテンツはコードで直接変更できます
短所:コードは冗長であり、簡潔ではなく、ハードコーディングされているため、メッセージコンテンツを変更する必要がないため、サーバーが再起動されます。
ソリューション2:データベースに保存します
一般的なメッセージテンプレートをサーバーに保存し、必要に応じてデータベースから直接読み取り、解析します。
読書後の分析は、それぞれが独自の解決策を備えており、それぞれが独自の利点と短所を備えた1000人と方法であると考えられています。
ここでは、 java.text包のMessageFormat.formatメソッドを使用しています。これは、テンプレートメッセージを簡単に一致させて解析できます。
MessageFormatメソッドの紹介
MessageFormatは、メッセージをフォーマットするために使用されます。通常は次のような文字列です。
string str = "私は{0}ではありません、年齢は{1、number、short}、高さは{2、number、#。#}";MessageFormatは、そのようなメッセージをフォーマットして、次のようなパターンの適切な位置にフォーマットされた文字列を挿入できます。
strの{0}を「豚」、{1、number、short}に{2、{2、number、#。#}を番号1.2に置き換えます。
エンドユーザーが取得するのは、フォーマットされた文字列「私は豚ではなく、年齢は8、高さは1.2」です。
MessageFormat自体は、ロケールに関連していませんが、ユーザーがMessageFormatに提供するモードと、挿入されたパラメーターのサブフォームパターンに関連して、さまざまな場所に適したメッセージを生成します。
messageformatモード(メインパーツ):
formatelement:
{argumentIndex}
{argumentIndex、formattype}
{argumentIndex、formattype、formatstyle}
formattype:
番号
日付
時間
選択(ChoiceFormatが必要)
formatstyle:
短い
中くらい
長さ
満杯
整数
通貨
パーセント
subformatpattern
この文字列の例として、STRを例にとります。
1。{0}および{1、number、short}と{2、number、#。#};どちらもフォーマテレメントに属し、0,1,2はargumentIndexです。
2。{1、number、short}の数値はformattypeに属し、短いformatstyleに属します。
3。#。
formattypeとformatstyleの指定は、日付形式の値、異なる精度の数、パーセンテージタイプなどを生成することです。
例:
1。archingindexは非陰性整数でなければなりません。その数は0〜9の10に限定されません。0〜9の数値で構成できます。そのため、以下など、多くの数字があります。
String Pig = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {8} {9} {10} {11} {12} {13} {14} {15} {16}" object [] {"a"、 "b"、 "c"、 "d"、 "e"、 "f"、 "g"、h "、" i "、" j "、" k "、" l "、" m "、" n "、" o "、" p "、" q "}; string value = messageformat.format(message、array); System.out.println(value);最終結果は次のとおりですABCDEFGHIJKLMNOPQ
2。文字列をフォーマットする場合、2つの単一の引用符のみが単一の引用を表し、次のような単一の引用符が省略されます。
文字列メッセージ= "OH、{0}は 'a' pig"です。 object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(message、array); System.out.println(value);最終的な結果は次のとおりです。 oh, ZhangSan is a pig
次のような文字Aに単一の引用符を追加します。
文字列message = "oh、{0}は '' a '' pig"です。 object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(message、array); System.out.println(value);最終的な結果は次のとおりです。 oh, ZhangSan is 'a' pig
3.単一の引用は、キャラクターまたは文字列を本物に保ちます。
したがって、特別な要件がない場合、正式なフォーマットの前に単一の引用を削除する必要があります。
文字列メッセージ= "OH、 '{0}'は豚です"; object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(message、array); System.out.println(value);最終結果は次のとおりです。ああ、{0}は 'a' fig、Zhangsanをここに表示することはできません。
たとえば、サブフォームパターンを使用して、追加の単一の引用があります。
string message = "oh、 '{0、number、#。#}は豚です"; object [] array = new object [] {new double(3.1415)}; string value = messageformat.format(message、array); System.out.println(value);最終結果は次のとおりです。 oh, {0,number,#.#} is 'a' pig。
このような場合は、正しく表示できます。
string message = "oh、{0、number、#。#}は豚です"; object [] array = new object [] {new double(3.1415)}; string value = messageformat.format(message、array); System.out.println(value);最終結果は次のとおりです。 oh, 3.1 is a pig
3.引用された文字列であろうと引用されていない文字列であろうと、左カーリーブレースはサポートされていませんが、次のような右のカーリーブレースがサポートされています。
文字列メッセージ= "ああ、{は豚です"; object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(message、array); System.out.println(value);最終結果は异常java.lang.IllegalArgumentException: Unmatched braces in the patternです。
次のような右ブレースを表示できます。
文字列メッセージ= "OH、}は豚です"; object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(message、array); System.out.println(value);最終結果は次のとおりです。 oh, } is a pig
messageformat.formatメソッドについて:
MessageFormat.Formatメソッドが呼び出されるたびに、MessageFormatのインスタンスが作成されます。これは、そのメッセージFormatと同等です。 MessageFormatクラスのフォーマットメソッドは次のとおりです。
public static string format(string pattern、object ... arguments){messageformat temp = new messageformat(pattern); return temp.Format(引数); }MessageFormatインスタンスを再利用する場合は、次の方法を使用できます。
文字列メッセージ= "OH、{0}は豚です"; messageformat messageformat = new messageformat(message); object [] array = new object [] {"Zhangsan"}; string value = messageformat.format(array); System.out.println(value);最終的な結果は次のとおりです。 oh, ZhangSan is a pig
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。