DecimalFormat 模式问题

fox*_*fox 1 java android

我尝试在 Android 中使用 NumberFormatter 格式化数字。我使用下面的代码,它完美地工作:

 NumberFormat formatter = new DecimalFormat("###,###");
 String myFormattedString = formatter.format(123456);
Run Code Online (Sandbox Code Playgroud)

但是,当我使用带有空格的模式时,就像这样:new DecimalFormat("###,# ##");它会抛出一个IllegalArgumentException. 我已经阅读了有关 NumberFormatter 和 DecimalFormatter 的文档,但没有发现有关模式中空格的信息。谁能解释我为什么不能使用空格或如何将它们添加为允许的字符。提前致谢!!!

Fem*_*emi 5

您不能在数字中间放置空格:它不是有效格式。

如果您查看的 JavaDocDecimalFormat,您会看到:

前缀:
        除 \uFFFE、\uFFFF 和特殊字符之外的任何 Unicode 字符  
后缀:  
        除 \uFFFE、\uFFFF 和特殊字符之外的任何 Unicode 字符  
数字整数指数选择  
        整数。分数指数选择

如果不复制整个文档,模式的任何组件都不会Number接受空格,因此尝试在中间放置一个空格是行不通的。您只能在前缀或后缀中使用空格。