gpt4 book ai didi

java.text.MessageFormat 不带数字分组分隔符

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:05 25 4
gpt4 key购买 nike

是否有可能为 java.text.MessageFormat 定义一种格式,该格式可以在不使用 .toString() 对分隔符和其他对象进行分组的情况下格式化数字?

我的麻烦是,我必须格式化一个我事先不知道的参数,无论它是否是数字。如果我只是使用

java.text.MessageFormat.format("The object: {0}",someobject)

通常只是按照我的需要调用 someobject.toString() ,但是当 someobject 实际上是一个数字 1231231 时,它会返回(在德语语言环境中)The object: 1,231,231,但我想要这里的 The object: 1231231 。使用

格式化
java.text.MessageFormat.format("{0,number,#}",1231231)

返回对象:1231231,但是当参数不是数字时,这不起作用。有没有办法指定适用于数字和其他对象的格式?

(如果您想知道:不幸的是,更改 MessageFormat 的区域设置不是一个选项,因为它深深地埋在 JBoss 的日志框架中并且无法访问。)

更新:在将 String.valueOf(someobject) 作为参数传递之前调用它确实可以解决此问题,但在我的情况下也是不可行的,因为此问题在日志记录时发生,并且当日志记录级别不允许日志消息并且因此从未应用 MessageFormat 时,我不想调用可能昂贵的 someobject.toString() 。

最佳答案

    final String format = MessageFormat.format("The object: {0}", a == null ? null : a.toString());

System.out.println("format = " + format);

关于java.text.MessageFormat 不带数字分组分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com