将英文数字转换为阿拉伯语的最佳方式

可能重复:
将String转换为java中的另一个语言环境

我想将包含英文数字的java String转换为阿拉伯字母,所以我做了这个

 int arabic_zero_unicode= 1632; String str = "13240453"; StringBuilder builder = new StringBuilder(); for(int i =0; i < str.length(); ++i ) { builder.append((char)((int)str.charAt(i) - 48+arabic_zero_unicode)); } System.out.println("Number in English : "+str); System.out.println("Number In Arabic : "+builder.toString() ); 

输出

 Number in English : 13240453 Number In Arabic : ١٣٢٤٠٤٥٣ 

还有另一种更有效的方法吗?

这比您的版本提供了5倍的加速,字符串长度为3036.这也会检查以确保您只更改数字。 没有if / else检查,它的速度提高了6倍。

如果字符不正确/放错位置,请原谅我。 我不得不从另一个来源找到其中一些。

 char[] arabicChars = {'٠','١','٢','٣','٤','٥','٦','٧','٨','٩'}; StringBuilder builder = new StringBuilder(); for(int i =0;i 

您可以使用几个Java类以高级方式实现此目的,而无需对Unicode表结构进行明确假设。 例如,您可以查看DecimalFormatSymbols 。 但是,这个想法与您提供的代码示例相同。 Java库中的语言环境转换方法或类只会呈现数字的显示方式,它们不会以简单的方式转换数字符号。