vocales switch romanos que por para número numeros numero mostrar metodo letras letra ingresar dígito convierta convertir con codigo cambiar arabigos algoritmo java numbers

switch - ingresar un número dígito y mostrar el número en letras en java



La mejor manera de convertir números en inglés a árabe (2)

Posible duplicado:
Convertir cadena a otra localidad en java

Quiero convertir una String java que contiene números en inglés a los de árabe, así que hago esto.

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() );

La salida

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

¿Hay otra forma más eficiente de hacer esto?


Esto le da una aceleración de 5x sobre su versión con una cadena de longitud 3036. Esto también verifica para asegurarse de que solo esté cambiando los dígitos. Se trata de una aceleración 6x sin la verificación if / else.

Por favor, perdóneme si los caracteres son incorrectos / están fuera de lugar. Tuve que encontrar algunos de ellos de otra fuente.

char[] arabicChars = {''٠'',''١'',''٢'',''٣'',''٤'',''٥'',''٦'',''٧'',''٨'',''٩''}; StringBuilder builder = new StringBuilder(); for(int i =0;i<str.length();i++) { if(Character.isDigit(str.charAt(i))) { builder.append(arabicChars[(int)(str.charAt(i))-48]); } else { builder.append(str.charAt(i)); } } System.out.println("Number in English : "+str); System.out.println("Number In Arabic : "+builder.toString() );


Hay un par de clases de Java que puede utilizar para lograr esto en un nivel alto sin suposiciones explícitas sobre la estructura de la tabla Unicode. Por ejemplo, puedes revisar DecimalFormatSymbols . Sin embargo, la idea será la misma que el ejemplo de código que ha proporcionado. Los métodos o clases de conversión de configuración regional en la biblioteca de Java solo mostrarán la forma en que se muestran los números, no convierten los símbolos numéricos de forma trivial.