Eigentlich gibt es keinen technischen Inhalt, weil ich mich nicht daran erinnern kann, also werde ich ihn in diesem Artikel aufzeichnen.
Normalerweise gibt es viele SMS -Nachrichten in unserem Anwendungssystem oder Push -Nachrichten usw., aber diese Nachrichten haben die gleiche Gemeinsamkeit, z. B. nur den Benutzernamen.
Wie der unten, mit Ausnahme der roten Schriftart, sind der Rest gleich.
Sehr geehrte Kunden: Ihr Alipay-Konto 110 **** 11 vertraglich vertraglich vertraglichem Online-Händlerdarlehen sollte am 2018-06-10 1999.99 Yuan zurückgezahlt werden. Das System wird automatisch den Restbetrag des Alipay-Kontos, der Bound-Sparkkarte, Yu'Ebao, Ihrem Ankündigungsbank-Abrechnungskonto und Yu'Ebao (falls vorhanden) am 2018-06-10 abziehen. Aufgrund der begrenzten Begrenzung des Guthaben- und Sparkassenkartendarlehens haben Sie bitte die Vorrang, sicherzustellen, dass der Restbetrag von Yu'Ebao, Ansage Bank Abrechnungskonto und Yu'Ebao ausreicht. (Wenn Sie bereits zurückgezahlt haben, ignorieren Sie diese Informationen) [Anti-Commerce Bank]
Unterschiedliche Schüler können unterschiedliche Lösungen haben. Hier sind meine Lösungen für Ihre Referenz. Wenn es eine bessere Lösung gibt, können Sie sie natürlich teilen ~
Lösung 1: Hartcodierter Modus
Kann im Code festcodiert werden oder in der Konfigurationsdatei gelesen werden. Schüler, die Coding -Erfahrung haben, sollten schreiben
Vorteile: Der Nachrichteninhalt ist intuitiv und sichtbar, und der Inhalt der Textnachricht kann direkt im Code geändert werden
Nachteile: Der Code ist überflüssig und nicht präzise, und hartcodiert wird der Server aufgrund der unvermeidlichen Notwendigkeit, den Nachrichteninhalt zu ändern, neu gestartet.
Lösung 2: Speichern in der Datenbank
Speichern Sie gemeinsame Nachrichtenvorlagen auf dem Server und lesen und analysieren Sie bei Bedarf direkt aus der Datenbank.
Die Analyse nach dem Lesen wird als tausend Menschen und Methoden mit jeweils eigenen Lösungen und jeweils mit ihren eigenen Vor- und Nachteilen beträgt.
Hier verwende ich die MessageFormat.format -Methode im java.text包, mit dem unsere Vorlagennachrichten problemlos übereinstimmen und analysieren können.
Einführung in die MessageFormat -Methode
MessageFormat wird verwendet, um eine Nachricht zu formatieren, normalerweise eine Zeichenfolge, z. B.:
String str = "Ich bin kein {0}, Alter ist {1, nummer, kurz}, Höhe ist {2, nummer,#.#}";MessageFormat kann solche Nachrichten formatieren und dann die formatierte Zeichenfolge in die entsprechende Position im Muster einfügen, z. B.:
Ersetzen Sie {0} in STR durch "Schwein", {1, Nummer, kurz} durch die Nummer 8 und {2, Nummer,#.#} Mit der Nummer 1.2.
Dann erhält der Endbenutzer eine formatierte Zeichenfolge "Ich bin kein Schwein, Alter, die Höhe 1,2".
MessageFormat selbst bezieht sich nicht mit dem Gebietsschema, sondern mit dem vom Benutzer für MessageFormat bereitgestellten Modus und dem Subformat -Muster für eingefügte Parameter, um Nachrichten zu generieren, die für verschiedene Orte geeignet sind.
MessageFormat -Modus (Hauptteil):
Formatelement:
{ArgumentIndex}
{ArgumentIndex, formattype}
{ArgumentIndex, formattype, formatstyle}
FormatType:
Nummer
Datum
Zeit
Auswahl (erfordert ChoiceFormat)
Formatstyle:
Kurz
Medium
lang
voll
ganze Zahl
Währung
Prozent
Subformatpattern
Nehmen Sie als Beispiel in dieser Zeichenfolge STR:
1. {0} und {1, Nummer, kurz} und {2, Nummer,#.#}; Beide gehören zur Formatelement, 0,1,2 sind ArgumentIndex.
2. Die Nummer in {1, Nummer, Short} gehört zum Formattype, während Short zum Formatstil gehört.
3.#.#In {1, Nummer,#.#} Gehört zum Subformat -Modus.
Das Angeben von Formattype und Formatstyle besteht darin, Datumsformatwerte, Anzahl verschiedener Präzisions, prozentuale Typen usw. zu generieren.
Beispiel:
1. ArgumentIndex muss eine nicht negative Ganzzahl sein. Die Zahl ist nicht auf 10 bis 9 auf 10 bis 9 beschränkt. Sie kann aus Zahlen von 0 bis 9 zusammengesetzt werden, sodass es viele geben kann, wie z. B.:
String pig = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16}"; Objekt [] {"a", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: ABCDEFGHIJKLMNOPQ
2. Bei der Formatierung einer Zeichenfolge stellen nur zwei einzelne Zitate ein einzelnes Zitat dar, und ein einzelnes Zitat wird weggelassen, z. B.:
String message = "oh, {0} ist 'a' pig"; Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: oh, ZhangSan is a pig
Fügen Sie dem Buchstaben A einzelne Zitate hinzu, wie z. B.:
String message = "oh, {0} ist '' a '' pig"; Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: oh, ZhangSan is 'a' pig
3. Ein einzelne Zitate hält ein Zeichen oder eine String authentisch.
Wenn es keine besonderen Anforderungen gibt, müssen die einzelnen Zitate vor der formalen Formatierung entfernt werden, sonst werden unnötige Probleme verursacht, wie z. B.:
String message = "oh, '{0}' ist ein Schwein"; Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert);Das Endergebnis ist: Oh, {0} ist 'A' Schwein, Zhangsan kann hier nicht angezeigt werden.
Unter Verwendung des Subformat -Musters gibt es beispielsweise ein zusätzliches einzelnes Zitat:
String message = "oh, '{0, Nummer,#.#} Ist ein Schwein"; Object [] array = new Object [] {new Double (3.1415)}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: oh, {0,number,#.#} is 'a' pig。
Wenn es so ist, kann es korrekt angezeigt werden.
String message = "oh, {0, Nummer,#.#} Ist ein Schwein"; Object [] array = new Object [] {new Double (3.1415)}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: oh, 3.1 is a pig
3.. Ob es sich um eine zitierte Zeichenfolge oder eine nicht zitierte Zeichenfolge handelt, die linke lockige Klammer wird nicht unterstützt, aber die rechte lockige Klammer wird unterstützt, wie z.
String message = "Oh, {ist ein Schwein"; Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist:异常java.lang.IllegalArgumentException: Unmatched braces in the pattern
Die richtige Klammer kann angezeigt werden, wie z. B.:
String message = "Oh,} ist ein Schwein"; Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Nachricht, Array); System.out.println (Wert); Das Endergebnis ist: oh, } is a pig
Über MessageFormat.Format -Methode:
Jedes Mal, wenn die messageFormat.Format -Methode aufgerufen wird, wird eine Instanz von MessageFormat erstellt, die dieser MessageFormat entspricht, die nur einmal verwendet wird. Die Formatmethode der MessageFormat -Klasse lautet wie folgt:
öffentliches statisches String -Format (String -Muster, Objekt ... Argumente) {messageFormat temp = new MessageFormat (Muster); temp.Format (Argumente) zurückgeben; }Wenn Sie eine MessageFormat -Instanz wiederverwenden möchten, können Sie die folgende Methode verwenden:
String message = "oh, {0} ist ein Schwein"; MessageFormat messageFormat = new messageFormat (Nachricht); Object [] array = new Object [] {"Zhangsan"}; String value = messageFormat.format (Array); System.out.println (Wert); Das Endergebnis ist: oh, ZhangSan is a pig
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.