Na verdade, não há conteúdo técnico, porque não me lembro, então o gravarei neste artigo.
Geralmente, existem muitas mensagens SMS em nosso sistema de aplicativos, ou mensagens, etc., mas essas mensagens têm a mesma semelhança, como apenas alterar o nome de usuário.
Como o abaixo, exceto a fonte vermelha, o restante é o mesmo.
Prezados clientes: sua conta Alipay 110 **** 11 empréstimo contratado on-line deve ser reembolsado em 1999.99 Yuan em 2018-06-10. O sistema deduzirá automaticamente o saldo da conta Alipay, o cartão de poupança vinculado, Yu'ebao, sua conta de liquidação bancária do anúncio e Yu'ebao (se houver) em 2018-06-10. Devido ao limite limitado do saldo e do reembolso do empréstimo do cartão de poupança, priorize -se a garantir que o saldo de Yu'ebao, a conta de liquidação bancária do anúncio, e Yu'ebao sejam suficientes. (Se você já pagou de volta, ignore essas informações) [Banco Anti-Commerce]
Alunos diferentes podem ter soluções diferentes. Aqui estão minhas soluções para sua referência. Claro, se houver uma solução melhor, você pode compartilhá -la ~
Solução 1: Modo codificado
Pode ser codificado no código ou lido no arquivo de configuração. Os alunos que têm experiência de codificação devem escrever
Vantagens: o conteúdo da mensagem é intuitivo e o conteúdo da mensagem de texto pode ser modificado diretamente no código
Desvantagens: o código é redundante e não conciso, e faz com que o servidor seja reiniciado devido à necessidade inevitável de modificar o conteúdo da mensagem.
Solução 2: Armazene no banco de dados
Armazene modelos de mensagens comuns no servidor e leia e analise diretamente do banco de dados quando necessário.
Acredita -se que a análise após a leitura seja mil pessoas e métodos, cada um com suas próprias soluções e cada uma com suas próprias vantagens e desvantagens.
Aqui estou usando o método MessageFormat.format no java.text包, que pode corresponder e analisar facilmente nossas mensagens de modelo.
Introdução ao método MessageFormat
MessageFormat é usado para formatar uma mensagem, geralmente uma string, como:
String str = "Eu não sou um {0}, a idade é {1, número, curta}, a altura é {2, número,#.#}";MessageFormat pode formatar essas mensagens e, em seguida, inserir a sequência formatada na posição apropriada no padrão, como:
Substitua {0} em str com "porco", {1, número, curto} com o número 8 e {2, número,#.#} Com o número 1.2.
Então, o que o usuário final recebe é uma corda formatada "Eu não sou um porco, a idade é de 8 anos, a altura é 1,2".
O próprio MessageFormat não está relacionado ao local, mas ao modo fornecido pelo usuário ao MessageFormat e ao padrão de subformato para parâmetros inseridos para gerar mensagens adequadas para diferentes locais.
Modo MessageFormat (parte principal):
FormatElement:
{ArgumentIndex}
{ArgumentIndex, formattype}
{ArgumentIndex, formattype, formatStyle}
FormatType:
número
data
tempo
Escolha (requer ChoiceFormat)
FormatStyle:
Curto
médio
longo
completo
Inteiro
moeda
por cento
SubformatPattern
Tome o STR como exemplo, nesta string:
1. {0} e {1, número, curto} e {2, número,#.#}; Ambos pertencem ao FormatElement, 0,1,2 são argumentindex.
2. O número em {1, número, curto} pertence ao formattype, enquanto o curto pertence ao FormatStyle.
3.#.#Em {1, número,#.#} Pertence ao modo de subformato.
Especificar formattype e formatStyle é gerar valores de formato de data, números de diferentes precisões, tipos de porcentagem etc.
Exemplo:
1. O argumentIndex deve ser um número inteiro não negativo. Seu número não se limita a 10 de 0 a 9. Pode ser composto de números de 0 a 9, para que possa haver muitos, como:
String pig = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16}"; Objeto [] {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: ABCDEFGHIJKLMNOPQ
2. Ao formatar uma string, apenas duas citações únicas representam uma única citação, e uma única citação será omitida, como:
String message = "Oh, {0} é 'um' porco"; Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: oh, ZhangSan is a pig
Adicione citações únicas à letra A, como:
String message = "Oh, {0} é '' a '' porco"; Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: oh, ZhangSan is 'a' pig
3. Citações únicas manterão um personagem ou string autêntico.
Portanto, se não houver requisitos especiais, as cotações únicas devem ser removidas antes da formatação formal, caso contrário, serão causados problemas desnecessários, como:
String message = "Oh, '{0}' é um porco"; Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor);O resultado final é: oh, {0} é 'um' porco, zhangsan não pode ser exibido aqui.
Por exemplo, usando o padrão de subformato, há uma única cotação adicional:
String message = "Oh, '{0, número,#.#} É um porco"; Objeto [] array = new Object [] {new Double (3.1415)}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: oh, {0,number,#.#} is 'a' pig。
Se for assim, ele pode ser exibido corretamente.
String message = "Oh, {0, número,#.#} É um porco"; Objeto [] array = new Object [] {new Double (3.1415)}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: oh, 3.1 is a pig
3. Seja uma corda citada ou uma corda não citada, a cinta encaracolada esquerda não é suportada, mas a cinta encaracolada direita é suportada, como:
String message = "Oh, {é um porco"; Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é:异常java.lang.IllegalArgumentException: Unmatched braces in the pattern
A cinta direita pode ser exibida, como:
String message = "Oh,} é um porco"; Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.format (mensagem, matriz); System.out.println (valor); O resultado final é: oh, } is a pig
Sobre o MessageFormat.Format Método:
Sempre que o método messageFormat.Format é chamado, uma instância do MessageFormat será criada, o que é equivalente a esse messageFormat é usado apenas uma vez. O método de formato da classe MessageFormat é o seguinte:
Formato de String estática public (padrão da string, objeto ... argumentos) {messageFormat temp = new messageFormat (padrão); retornar temp.format (argumentos); }Se você deseja reutilizar uma instância de messageformat, pode usar o seguinte método:
String message = "Oh, {0} é um porco"; MessageFormat messageFormat = new messageFormat (message); Objeto [] Array = new Object [] {"Zhangsan"}; String value = messageFormat.Format (Array); System.out.println (valor); O resultado final é: oh, ZhangSan is a pig
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.