原始问题,但是如何格式化这样的字符串:
“ {2}的步骤{1}”
通过使用Java替换变量?在C#中很容易。
除了String.format之外,还请看一下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和自动装箱改进功能,并将以上内容变成了单行代码:
MessageFormat.format("String is \"{1}\", number is {0}.", 42, "foobar");
MessageFormat
使用choice修饰符进行国际化复数会更好一些。要指定在变量为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) });
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句