elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [AYUDA]Convertir un array de enteros a un numero entero en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA]Convertir un array de enteros a un numero entero en Java  (Leído 8,512 veces)
Suncar007

Desconectado Desconectado

Mensajes: 12


Ver Perfil
[AYUDA]Convertir un array de enteros a un numero entero en Java
« en: 6 Noviembre 2017, 20:14 pm »

Buenas, quisiera saber si es posible que los elementos de un array de enteros se unan para formar un numero entero.

Me explico:

Si tengo este array:
Código
  1. int[] cadena = {1,2,3,4};

Quiero convertirlo para poder usarlo de esta manera:
Código
  1. int numero = 1234;

Espero haberme explicado correctamente.
Gracias de antemano.


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: [AYUDA]Convertir un array de enteros a un numero entero en Java
« Respuesta #1 en: 6 Noviembre 2017, 21:18 pm »

Desconozco que exista una función en ningún lenguaje para hacer eso.

Pueden diseñarse miles y miles de funciones... inútiles, no tiene sentido meter todas las ocurrencias en un lenguaje para que alguien las use 1 vez cada 5 años.

Precisamente por eso existe la programación, para implementar con las funcionalidad básica de un lenguaje aquello que de forma nativa no ofrece pero se necesita.

Aunque el asunto es que es son matemáticas de 10 años o así... y casi mejor que decirte otra cosa es decirte que regreses a parvulitos a estudiar aquella lección que se ve que te saltaste  :silbar: :silbar: :silbar:

Código:
// Se supone que el contenido del array serán valores comprendidos entre 0 y 9)
entero = funcion ConvertirArrayDeBytesAEntero(array de bytes valores() )
    entero valor, k

    bucle para k desde 0 hasta valores.count  
        valor += ((10 elevado a k) * valores(k))
    fin bucle
    devolver valor
fin funcion
Date cuenta, que si operamos con números (operaciones matemáticas) es preferible que el array de entrada sean también números. Si, sí o sí en origen tienes un array de cadenas, o lo conviertes previamente a un array de bytes, o haces la conversión en el propio bucle elemento a elemento, antes de realizar el cálculo.

Si el array es demasiado largo (en realidad suficientemente corto para la capacidad de un array), habrá un error de desbordamiento del entero, razón principal por la que nadie implementará tal función en un lenguaje... no pararía de generarse errores contínuamente día tras día.
Nada entorpece más (el futuro de) un lenguaje que funciones no acotadas, donde los principantes inundan las redes siempre con las mismas preguntas por no entender que están haciendo al usarlo inapropiadamente.

Si los valores son bytes (no cadenas, esto es un byte 0 tiene un valor numérico = 0, en cambio un string "0" es un byte de valor 48), pueden usarse funciones del lenguaje para copiar x bytes de un array a una variable, sin necesidad de ninguna conversión explícita. Se accede al puntero de memoria preciso, y desde ahí se copian al destino los bytes necesarios.


p.d.:
Por último señalar que si la función va a ser invocada constantemente, es más eficiente generar un array con las potencias de 10, al inicio del programa (un array estático), que recalcularlo en cada llamada a la función.
Código:
array estatico de enteros Potencias10(de 0 a 9) //con 10 alcanza hasta un valor de:  9.999.999.999 

funcion InicializarPrograma
    entero k

    bucle para k desde 0 hasta 9
        potencias10(k) = 10 elevado a la k
    fin bucle

    // o un código alternativo al bucle previo:
    potencias10(0)= 1
    bucle para k desde 1 hasta 9
        potencias10(k) = (potencias10(k-1) * 10)
    fin bucle
fin funcion

//y en la línea de la función anterior:
 valor +=  (10 elevado a k) * valores(k)
// la remplazas por:
 valor +=  (potencias10(k) * valores(k))



« Última modificación: 6 Noviembre 2017, 21:32 pm por NEBIRE » En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [AYUDA]Convertir un array de enteros a un numero entero en Java
« Respuesta #2 en: 7 Noviembre 2017, 02:18 am »

Yo lo haria de la siguiente forma.

Código
  1. int[] cadena = {1,2,3,4};
  2.        String unionString = "";
  3.        int union = 0;
  4.  
  5.        for(int i = 0; i < cadena.length; i++) {
  6.            unionString += cadena[i];
  7.        }
  8.  
  9.        union = Integer.parseInt(unionString);
  10.        System.out.println(union);
  11.  

Si no entiendes algo avisa.
Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ayuda] convertir una cadena de caracteres en un array
Programación C/C++
jet1994 8 5,370 Último mensaje 26 Septiembre 2012, 14:57 pm
por fary
Ayuda codigo convertir numero entero a string « 1 2 »
Programación C/C++
NanoTech 15 7,201 Último mensaje 7 Abril 2014, 22:42 pm
por NanoTech
Obtener longitud de un array de enteros en C
Programación C/C++
geeke 2 2,507 Último mensaje 14 Enero 2015, 15:04 pm
por geeke
Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Java
afrocardo 5 6,323 Último mensaje 4 Abril 2016, 17:20 pm
por esjuleta
Ayuda!!! Cálculo el valor entero(atributo) mas alto en un array
Java
afrocardo 2 2,558 Último mensaje 27 Febrero 2017, 15:18 pm
por afrocardo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines