¿Es posible convertir una matriz char[]
que contiene números en y ?Java char matriz a int
9
A
Respuesta
16
¿El char[]
contiene los caracteres Unicode que componen los dígitos del número? En ese caso, basta con crear una cadena de la char[]
y utilizar Integer.parseInt:
char[] digits = { '1', '2', '3' };
int number = Integer.parseInt(new String(digits));
1
Otra forma con más rendimiento:
char[] digits = { '1', '2', '3' };
int result = 0;
for (int i = 0; i < chars.length; i++) {
int digit = ((int)chars[i] & 0xF);
for (int j = 0; j < chars.length-1-i; j++) {
digit *= 10;
}
result += digit;
}
10
Aún más rendimiento y un código más limpio (y no hay necesidad de asignar un nuevo objeto de cadena):
int charArrayToInt(char []data,int start,int end) throws NumberFormatException
{
int result = 0;
for (int i = start; i < end; i++)
{
int digit = (int)data[i] - (int)'0';
if ((digit < 0) || (digit > 9)) throw new NumberFormatException();
result *= 10;
result += digit;
}
return result;
}
6
char[] digits = { '0', '1', '2' };
int number = Integer.parseInt(String.valueOf(digits));
funciona esto también.
0
Se puede utilizar como esto para conseguir uno por uno a int
char[] chars = { '0', '1', '2' };
int y=0;
for (int i = 0; i < chars.length; i++) {
y = Integer.parseInt(String.valueOf(chars[i]));
System.out.println(y);
}
0
Bueno, se puede tratar incluso este
char c[] = {'1','2','3'};
int total=0,x=0,m=1;
for(int i=c.length-1;i>=0;i--)
{
x = c[i] - '0';
x = x*m;
m *= 10;
total += x;
}
System.out.println("Integer is " + total);
Cuestiones relacionadas
- 1. Convierte Char a Int
- 2. C# char a int
- 3. Convertir single-char a int
- 4. C - fundición int a char y anexar char a char
- 5. ¿Almacena una int en una matriz char?
- 6. Int a Char en C#
- 7. Añadir un int a char *
- 8. conversión de corriente de int a char de java en
- 9. C++ - int main (int argc, char ** argv)
- 10. Char Matriz VS Char *
- 11. Añadiendo char e int
- 12. Python - Conversión de hexadecimal a INT/CHAR
- 13. cómo convertir de int a char *?
- 14. Char a int conversión en C
- 15. Char no está convirtiendo a int
- 16. C - unsigned int a unsigned char array conversion
- 17. Eficiencia: matriz de caracteres frente a matriz int
- 18. Convertir matriz int a matriz de caracteres
- 19. ¿Cómo convertir una matriz de bytes a una matriz int?
- 20. matriz de punteros a char arrays
- 21. Java: analizar el valor int de un char
- 22. Cómo devolver la matriz int de Java a JNI
- 23. matriz de bytes a unsigned int en Java
- 24. Int matriz de bytes a
- 25. Convertir cadena a matriz int usando LINQ
- 26. Cómo convertir int a char en lenguaje de expresión JSP?
- 27. ¿Por qué funciona char para int casting y no char para Integer en Java
- 28. Java int concurrencia ++ int equivalente a AtomicInteger.incrementAndGet()?
- 29. matriz Hex a char en C
- 30. java convert object array a int array
Usted puede simplemente reemplazar el bucle interno con 'resultado * = 10; '. –
¿Quiere decir reemplazar 'digit * = 10;' a 'result * = 10;'? –
No, puede deshacerse del bucle interno * entero * ('for (int j = ...') y reemplazar las tres líneas con 'resultado * = 10;'. –