NumberFormat.format 也在根据区域设置格式化数字

NumberFormat.format is also formatting digits as per locale

NumberFormat.format 正在将 1000Rs 更改为 ₹ ১,০০০.০০,这实际上是孟加拉语中的数字,IQD 也发生了类似的事情,伊拉克语中的数字也发生了变化。我们如何通过仅保留 1-9 中的数字来格式化,并根据语言环境仅获取分隔符和小数点的格式

NumberFormat amountFormatter = NumberFormat.getCurrencyInstance(
                Locale.getdefault());
String formattedAmount = amountFormatter.format(Double.parseDouble(actualAmount))

我找到了解决方案。我们可以获得 DecimalFormatSymbols 实例并设置 Zerodigit 字符以避免其他数字符号

DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) numberFormat).getDecimalFormatSymbols();
            decimalFormatSymbols.setZeroDigit('0');