除了绳子.格式,也看看java.text.MessageFormat
.格式没有那么简洁,更接近于您提供的C#示例,您也可以使用它进行解析.
例如:
int someNumber = 42;
String someString = "foobar";
Object[] args = {new Long(someNumber), someString};
MessageFormat fmt = new MessageFormat("String is \"{1}\", number is {0}.");
System.out.println(fmt.format(args));
一个更好的例子利用了Java 1.5中的varargs和autoboxing改进,并将上述内容变成了一行:
MessageFormat.format("String is \"{1}\", number is {0}.", 42, "foobar");
MessageFormat
对于使用choice修饰符进行i18nized复数有点好.要指定在变量为1时正确使用单数形式,否则为复数形式的消息,可以执行以下操作:
String formatString = "there were {0} {0,choice,0#objects|1#object|1<objects}";
MessageFormat fmt = new MessageFormat(formatString);
fmt.format(new Object[] { new Long(numberOfObjects) });