En fait, il n'y a pas de contenu technique, car je ne m'en souviens pas, donc je vais l'enregistrer dans cet article.
Habituellement, il existe de nombreux messages SMS dans notre système d'application, ou des messages push, etc., mais ces messages ont le même point commun, comme la simple modification du nom d'utilisateur.
Comme celle ci-dessous, à l'exception de la police rouge, celle est la même.
Chers clients: Votre compte Alipay 110 **** 11 Le prêt marchand sous contrat devrait être remboursé 1999.99 Yuan le 2018-06-10. Le système déduira automatiquement le solde du compte Alipay, la carte d'épargne Bound, Yu'ebao, votre compte de règlement bancaire d'annonce et Yu'ebao (le cas échéant) le 2018-06-10. En raison de la limite limitée de remboursement des prêts de cartes d'épargne et d'épargne, veuillez donner la priorité à la garantie que le solde de Yu'ebao, le compte de règlement de la banque d'annonce et Yu'ebao sont suffisants. (Si vous avez déjà remboursé, veuillez ignorer ces informations) [Banque anti-commerce]
Différents étudiants peuvent avoir des solutions différentes. Voici mes solutions pour votre référence. Bien sûr, s'il y a une meilleure solution, vous pouvez le partager ~
Solution 1: mode codé dur
Peut être codé en dur dans le code ou lire dans le fichier de configuration. Les étudiants qui ont une expérience de codage devraient écrire
Avantages: le contenu du message est intuitif et visible, et le contenu du message texte peut être directement modifié dans le code
Inconvénients: le code est redondant et non concis, et le code dur fait redémarrer le serveur en raison du besoin inévitable de modifier le contenu du message.
Solution 2: Conserver dans la base de données
Stockez les modèles de messages communs dans le serveur et lisez et analysez directement à partir de la base de données en cas de besoin.
L'analyse après la lecture est considérée comme un millier de personnes et de méthodes, chacune avec ses propres solutions, et chacune avec ses propres avantages et inconvénients.
Ici, j'utilise la méthode MessageFormat.format dans java.text包, qui peut facilement correspondre et analyser nos messages de modèle.
Introduction à la méthode MessageFormat
MessageFormat est utilisé pour formater un message, généralement une chaîne, telle que:
String str = "Je ne suis pas un {0}, l'âge est {1, nombre, court}, la hauteur est {2, numéro, #. #}";MessageFormat peut formater ces messages, puis insérer la chaîne formatée dans la position appropriée dans le modèle, telles que:
Remplacez {0} dans STR par "Pig", {1, numéro, court} par le nombre 8, et {2, numéro, #. #} Par le numéro 1.2.
Ensuite, ce que l'utilisateur final obtient est une chaîne formatée "Je ne suis pas un cochon, l'âge est de 8 ans, la hauteur est de 1,2".
MessageFormat lui-même n'est pas lié aux paramètres régionaux, mais au mode fourni par l'utilisateur à MessageFormat et au modèle de sous-format pour les paramètres insérés pour générer des messages adaptés à différents locaux.
Mode MessageFormat (partie principale):
Formation de formatation:
{ArgumentIndex}
{ArgumentIndex, formatType}
{ArgumentIndex, formatType, formatstyle}
FormatType:
nombre
date
temps
Choix (nécessite ChoiceFormat)
Formatstyle:
Court
moyen
long
complet
entier
devise
pour cent
Subformatpattern
Prenez STR comme exemple, dans cette chaîne:
1. {0} et {1, numéro, court} et {2, numéro, #. #}; Les deux appartiennent à Formatelement, 0,1,2 sont ArgumentIndex.
2. Le nombre en {1, nombre, court} appartient à FormatType, tandis que Short appartient au formatyle.
3. #. # En {1, numéro, #. #} Appartient au mode subformat.
Spécifier le type de format et le formatyle consiste à générer des valeurs de format de date, des nombres de précision différentes, des types de pourcentage, etc.
Exemple:
1. ArgumentIndex doit être un entier non négatif. Son nombre n'est pas limité à 10 de 0 à 9. Il peut être composé de nombres de 0 à 9, donc il peut y en avoir beaucoup, comme:
String pig = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16}"; objet [] Array = Objet [] {"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 (valeur); Le résultat final est: ABCDEFGHIJKLMNOPQ
2. Lors de la mise en forme d'une chaîne, seules deux citations simples représentent une seule citation, et une seule citation sera omise, comme:
String Message = "Oh, {0} est 'a' pig"; Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est: oh, ZhangSan is a pig
Ajoutez des devis simples à la lettre A, tels que:
String Message = "Oh, {0} est '' a '' pig"; Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est: oh, ZhangSan is 'a' pig
3. Les citations simples garderont un caractère ou une chaîne authentique.
Par conséquent, s'il n'y a pas d'exigences particulières, les devis uniques doivent être supprimés avant la mise en forme formelle, sinon un problème inutile sera causé, tel que:
String message = "Oh, '{0}' est un cochon"; Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (message, array); System.out.println (valeur);Le résultat final est: oh, {0} est 'a' pig, zhangsan ne peut pas être affiché ici.
Par exemple, en utilisant le modèle de sous-format, il y a un devis unique supplémentaire:
String Message = "Oh, '{0, numéro, #. #} Est un cochon"; Objet [] array = nouvel objet [] {new double (3.1415)}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est: oh, {0,number,#.#} is 'a' pig。
Si c'est comme ça, il peut être affiché correctement.
String message = "Oh, {0, numéro, #. #} Est un cochon"; Objet [] array = nouvel objet [] {new double (3.1415)}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est: oh, 3.1 is a pig
3. Qu'il s'agisse d'une chaîne citée ou d'une chaîne non citée, l'attelle bouclée gauche n'est pas prise en charge, mais l'attelle bouclée droite est prise en charge, comme:
String Message = "Oh, {est un cochon"; Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est:异常java.lang.IllegalArgumentException: Unmatched braces in the pattern
L'accouchement droit peut être affiché, tel que:
String message = "Oh,} est un cochon"; Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (message, array); System.out.println (valeur); Le résultat final est: oh, } is a pig
À propos de MessageFormat.Format Méthode:
Chaque fois que la méthode MessageFormat.Format est appelée, une instance de MessageFormat sera créée, ce qui équivaut à ce message MessageFormat n'est utilisé qu'une seule fois. La méthode de format de la classe MessageFormat est la suivante:
Format de chaîne statique publique (modèle de chaîne, objet ... arguments) {messageFormat temp = new MessageFormat (modèle); retour temp.format (arguments); }Si vous souhaitez réutiliser une instance MessageFormat, vous pouvez utiliser la méthode suivante:
String message = "Oh, {0} est un cochon"; MessageFormat MessageFormat = new MessageFormat (message); Objet [] array = nouvel objet [] {"zhangsan"}; String Value = MessageFormat.Format (Array); System.out.println (valeur); Le résultat final est: oh, ZhangSan is a pig
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.