O MessageFormat em si não tem nada a ver com o ambiente do idioma e está relacionado ao modo que o usuário fornece MessageFormat e o modo sub -formato para inserir parâmetros para gerar mensagens adequadas para diferentes ambientes de idiomas.
Modo MessageFormat (parte principal):
Copie o código do código da seguinte forma:
FormatElement:
{ArgumentIndex}: é um índice da posição de entrada a partir de 0.
{ArgumentIndex, formattype}
{ArgumentIndex, formattype, formatStyle}
FormatType :: Especifique o uso de diferentes subclasses de formato para formatação. O alcance do valor é o seguinte:
Número: Número de chamada para formatação
Data: Ligue para DateFormat para formatação
Tempo: Ligue para o DateFormat para formatação
Escolha: Chamada ChoiceFormat para formatação
FormatStyle :: Defina o estilo de formato usado no formattype. O alcance do valor é o seguinte:
curto
médio
longo
fult
Inteiro
Moeda
por cento
SubformatPattern (modo sub -format, forma como#. ##)
Tome o STR como exemplo, nesta string:
1. {0} e {1, número, curta} e {2, número,#.#};
2. Número em {1, número, curto} pertence ao formattype, e curto pertence ao FormatStyle.
3. {1, número,#.#} O#.#Pertencem ao modo sub -formato.
Especifique formattype e formatStyle para gerar os valores do formato de data, o número de precisão diferente, o tipo de porcentagem e assim por diante.
Exemplo:
1. O Index não deve ser negativo.
Copie o código do código da seguinte forma:
String msg = "{0} {1} {2} {3} {4} {5} {6} {7} {8}" ";
Objeto [] Array = novo objeto [] {"A", "B", "C", "D", "E", "F", "G", "I",};
String value = messageFormat.format (msg, matriz);
System.out.println (valor);
2. Quando a corda formatada, as duas citações únicas indicam um único número de citação, e um único número de citação será omitido, a menos que o número de citação chinês não seja omitido, como:
Copie o código do código da seguinte forma:
String value = messageFormat.format ("Oh, {0} é 'a' porco", "zhangsan");
System.out.println (valor);
Adicione uma única citação à letra A, como:
Copie o código do código da seguinte forma:
String value = messageFormat.format ("Oh, {0} é 'a' porco", "zhangsan");
System.out.println (valor);
Se você precisar exibir as citações duplas a serem transferidas, por exemplo: String msg = "Oh, {0} é /" a /"porco";
3. O número de cotação única fará com que o posicionamento das posições posteriores falhem, resultando em um símbolo de colocação de saída direta.
Copie o código do código da seguinte forma:
MessageFormat.Format ("{0} {1}", 1, 2);
MessageFormat.Format ("'{0} {1}", 1, 2);
MessageFormat.Format ("'{0}' -{1}", 1, 2);
Não tem nada a ver com o uso de citações duplas e duas citações únicas.
String value = messageFormat.format ("oh, '' {0} '' é uma escolha", "zhangsan");
System.out.println (valor);
Para outro exemplo, usando o modo sub -formato, mais um número de cotação única:
Copie o código do código da seguinte forma:
String value = messageFormat.format ("Oh, {0, número,#.#} É bom num", duplo.valueof ("3.1415"));
System.out.println (valor);
3. Se existem citações e cordas ou sem aspas, os suportes de flores esquerdos não são suportados, como:
Copie o código do código da seguinte forma:
String value = messageFormat.format ("Oh,} é bom num", duplo.valueof ("3.1415");
System.out.println (valor);
Se você usar suportes de flores esquerdos, um código de cópia anormal aparecerá o seguinte:
String value = messageFormat.format ("Oh, {é bom num", duplo.valueof ("3.1415");
System.out.println (valor);
Portanto
MessageFormat.Format ("'{' {0}}", "X-Rapido");
Há também um fenômeno interessante. como segue
String value = messageFormat.format ("Oh, {{é bom num", "d");
System.out.println (valor);
Copie o código do código da seguinte forma:
String value = messageFormat.format ("Oh,}} é bom num", "d");
System.out.println (valor);
Sobre o MessageFormat.Format Método:
Toda vez que o método messageFormat.Format é chamado, uma instância do messageFormat será criada recentemente, o que é equivalente ao messageFormat usado apenas uma vez. O método de formato da classe MessageFormat é o seguinte:
Copie o código do código da seguinte forma:
Formato de String estática pública (padrão de sequência, objeto ... argumentos)
{{
MessageFormat temp = new messageFormat (padrão);
Retornar temp.format (argumentos);
}
Portanto, se você deseja formatar a sequência do mesmo modo várias vezes, crie uma instância de messageFormat na formatação de execução.
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);