如何用Java格式化字符串

卡蒂特:

原始问题,但是如何格式化这样的字符串:

“ {2}的步骤{1}”

通过使用Java替换变量?在C#中很容易。

ataylor:

除了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章