我试图获取特定于语言环境的百分比符号。我的崩溃日志在尝试从DecimalFormatSymbols中获取PerPercent时显示“ 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类的getPercent()方法,

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


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

最佳答案

当查看类DecimalFormatSymbols时,方法.getPercent()只是返回一个%符号...

对于阿拉伯语,您可能需要先调用.setPercent("٪"),以便.getPercent()返回٪

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

07-26 09:37