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 .next, en vez de hacerlo con el método .nextInt y recuperarlo como un entero.
String sNumero;
System.out.println("Introduce un número por pantalla: ");
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.
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:
iNumero = Integer.parseInt(sNumero);
iDesplazamiento = Double.valueOf(Math.pow(10, iTamanioNumero-1)).intValue();
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.
System.out.println("El primer dígito del número " + iNumero + " es el " + iNumero/iDesplazamiento);