我试图获取特定于语言环境的百分比符号。我的崩溃日志在尝试从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
。