如何在获取百分号时避免 UnsupportedOperationException?

How to avoid UnsupportedOperationException while getting percent symbols?

我试图获取特定于语言环境的百分比符号。我的崩溃日志在尝试从 DecimalFormatSymbols 获取百分比时显示 "UnsupportedOperationException"。

我为给定的语言环境使用了 NumberFormat 实例,并通过 DecimalFormatSymbols getPercent 方法获得了百分比符号。

    {
        DecimalFormat decimalFormat = (DecimalFormat)NumberFormat.getInstance(currentLocale);
        return String.valueOf(decimalFormat.getDecimalFormatSymbols().getPercent());
    } 

我期待特定于语言环境的百分比符号,但对于某些语言环境,我收到以下异常

       at java.text.DecimalFormatSymbols.getPercent(DecimalFormatSymbols.java:352

我检查了 DecimalFormatSymbols class getPercent() 方法,

public char getPercent() {
        if (percent.length() == 1) {
            return percent.charAt(0);
        }
        throw new UnsupportedOperationException("Percent spans multiple characters: " + percent);
    }

看起来百分比符号长度 != 1,它发生在阿拉伯符号上。

当查看 class DecimalFormatSymbols 时,方法 .getPercent() 只是 return 一个 % 符号...

对于阿拉伯语,您可能需要先调用 .setPercent("٪"),这样 .getPercent() 就会 return ٪.

在Java中,Character.charCount()等于1