转自:https://blog.csdn.net/woshixuye/article/details/8252391
一、基本概念
MessageFormat用来格式化一个消息,通常是一个字符串。MessageFormat模式的主要部分:
FormatElement:
{ ArgumentIndex }
{ ArgumentIndex , FormatType }
{ ArgumentIndex , FormatType , FormatStyle }
FormatType:
number
date
time
choice(需要使用ChoiceFormat)
FormatStyle:
short
medium
long
full
integer
currency
percent
SubformatPattern(子模式)
{0}、{1,number,short}、{2,number,#.#}属于FormatElement,0,1,2是ArgumentIndex
{1,number,short}里面的number属于FormatType,short则属于FormatStyle
{1,number,#.#}里面的#.#就属于子格式模式
二、例子
-
import java.text.MessageFormat;
-
-
String str = "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}";
-
Object[] array = new Object[]{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q"};
-
String value = MessageFormat.format(str, array);
-
System.out.println(value); // ABCDEFGHIJKLMNOPQ
-
-
-
String message = "oh, {0} is a person";
-
Object[] array = new Object[]{"ZhangSan"};
-
String value = MessageFormat.format(message, array);
-
System.out.println(value); // oh, ZhangSan is a person
-
-
-
String message = "oh, {0,number,#.#} is a number";
-
Object[] array = new Object[]{new Double(3.1415)};
-
String value = MessageFormat.format(message, array);
-
System.out.println(value); // oh, 3.1 is a number
-
-
-
// MessageFormat的format方法源码
-
public static String format(String pattern, Object ... arguments)
-
{
-
MessageFormat temp = new MessageFormat(pattern);
-
return temp.format(arguments);
-
}
对字符串的匹配比较智能
-
String str = "{0} | {1} | {0} | {1}";
-
Object[] array = new Object[] { "A", "B" };
-
String value = MessageFormat.format(str, array);
-
System.out.println(value); // A | B | A | B
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步