Primer dígito de un número con Java

12/Ene/2009 Java , , , , , 9 Comentarios

Si ayer veíamos como obtener el último dígito de un número con Java. Eso sí, en este caso no será tan sencillo como utilizar el módulo de 10. Si bien, tampoco es un ejemplo muy complejo.

Lo primero será recuperar el número por teclado. En este caso no vamos a recuperarlo como cadena de texto mediante el método .nextInt y recuperarlo como un entero.

  1. String sNumero;
  2.  
  3. System.out.println("Introduce un número por pantalla: ");
  4. sNumero = reader.next();

Esto lo hacemos ya que necesitamos saber la longitud del número y lo más sencillo para esto es realizarlo con el método .length de la cadena.

  1. iTamanioNumero = sNumero.length();

El tamaño de la cadena lo necesitamos saber ya que para recuperar el primer dígito de un número con Java tendremos que dividir el número por 10, elevado al número de dígitos menos 1 del número sobre el que queremos recuperar el primer dígito.

Por ejemplo para recuperar el primer dígito del número 12345, tendremos que dividir 12345 entre 10 elevado a 4, que son los dígitos que tiene el número. Es decir, la operación sería 12345/10000.

El código Java nos quedaría de la siguiente forma:

  1.  
  2. iNumero = Integer.parseInt(sNumero);
  3. iDesplazamiento = Double.valueOf(Math.pow(10, iTamanioNumero-1)).intValue();
  4.  

En el código hay que identificar varias cosas. La primera es que como recuperamos el número como cadena de texto, este hay que transformarlo a un número entero. Para ello nos apoyamos en el método .parseInt de la clase Integer.

Para obtener la potencia de 10 buscada utilizamos el método pow de la clase Math. Además, en este caso como el método Math.pow nos devuelve un número Double, tenemos que transformarlo en un número entero. Es por ello que utilizaremos los métodos valueOf e intValue de la clase Double.

Solo nos quedará hacer la división y mostrarlo por pantalla.

  1.  
  2. System.out.println("El primer dígito del número " + iNumero + " es el " + iNumero/iDesplazamiento);
  3.  

Vídeos sobre Java


9 comentarios en “Primer dígito de un número con Java”

Víctor Cuervo

omargr

Mi aporte, si estrictamente se pide el primer digito me parece esta otra solucion sencilla utlizando la idea de obtener el último digito de un número:
Scanner sc = new Scanner(System.in);
int iNumero= sc.nextInt();//n
int iUltimoDigito=0;
while(iNumero>0)
{
iUltimoDigito = iNumero%10;
iNumero=iNumero/10;
}
System.out.println(iUltimoDigito);

Víctor Cuervo

lineadecodigo

@ShadowMan,

Muy buena idea. @verito, esa te puede valer??

Víctor Cuervo

ShadowMan

Mete los numero en una especie de SortedList y simplemente se ordenan

Víctor Cuervo

VERITO

no, no se puede usar el IF el FOR Y EL WHILE NI EL DO WHILE

Víctor Cuervo

lineadecodigo

Se me ocurre una cosa. Pero sale un programa raro, raro. En el que dividiendo los números y evaluando su resultado con un switch y encadenando mucho switch se puede sacar.

Y se puede utilizar el operador ?. Que es como el IF.

max = (a > b) ? a : b;
Víctor Cuervo

VERITO

SI SE PUEDE UTILIZAR ESA SENTENCIA

Víctor Cuervo

lineadecodigo

@verito,

Puedes utilizar la sentencia switch. ¿Te dejan utilizarla?

Víctor Cuervo

VERITO

COMO PUEDO SABER CUAL ES EL NUMERO MAYOR DE 4 NUMEROS SIN USAR (IF. WHILE,FOR,DO WHILE)

Víctor Cuervo

dani

hola me gustaria saber como transportar imagenes pares a una carpeta q se llame par x ejemplo 00002.jpg o 00002.tif que te lea el ultimo numero q es el 2 y automaticamente la mueva a la carpeta par

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*