2012-08-30 19 views
10

¿Cuál es la mejor forma de convertir un entero en una matriz de caracteres?Convierta un entero en una matriz de caracteres: java

de entrada: 1234

Salida: {1,2,3,4}

Teniendo en cuenta la inmensidad del lenguaje Java lo que va a ser la forma mejor y más eficiente de hacerlo?

+0

lo probaste? – amit

+1

Estoy buscando una manera eficiente. Puedo pensar en sacar cada dígito en% 10, convertirlo en char y agregarlo a una matriz. Y al final invierte la matriz. ¿Algún método mejor? –

Respuesta

26
int i = 1234; 
char[] chars = ("" + i).toCharArray(); 
+0

Aha ... Estaba buscando algo como esto. :) –

23

Usted podría intentar algo como:

String.valueOf(1234).toCharArray(); 
+1

Genial ... todavía no estoy enterado de la mitad de las funciones en Java. Gracias por la respuesta. –

10

Prueba esto ...

int value = 1234; 
char [] chars = String.valueOf(value).toCharArray(); 
-1

me hicieron esta pregunta en google entrevista. Si se le pregunta en las entrevistas, use módulo y división. Aquí está la respuesta

List<Integer> digits = new ArrayList<>(); 
//main logic using devide and module 
for (; num != 0; num /= 10) 
    digits.add(num % 10); 

//declare an array 
int[] arr = new int[digits.size()]; 
//fill in the array 
for(int i = 0; i < digits.size(); i++) { 
    arr[i] = digits.get(i); 
} 
//reverse it. 
ArrayUtils.reverse(arr); 
-1

decir que tiene una matriz de enteros y otro método que convierte esos enteros a las cartas, al igual que para un programa de cambio de calificaciones numéricas para las calificaciones en letras, que haría ...

public char[] allGradesToLetters() 
    { 
     char[] array = new char[grades.length]; 

     for(int i = 0; i < grades.length; i++) 
     { 
     array[i] = getLetter(grades[i]); 
     } 

     return array; 
    } 
3

puede convertir ese entero a cadena y luego convertir esa cadena a char arary: -

int i = 1234; 
String s = Integer.toString(i); 
Char ch[] = s.toCharArray(); 

/*ch[0]=1,ch[1]=2,ch[2]=3,ch[3]=4*/ 
Cuestiones relacionadas