Obtiene el último dígito de un número

Necesito definir el último dígito de un número asignar esto a valor. Después de esto, devuelve el último dígito.

Mi fragmento de código no funciona correctamente …

Código:

public int lastDigit(int number) { //your code goes here. String temp = Integer.toString(number); int[] guess = new int[temp.length()]; int last = guess[temp.length() - 1]; return last; } 

Pregunta:

  • ¿Cómo resolver este problema?

Solo devuelve (number % 10) ; es decir, tomar el módulo. Esto será mucho más rápido que analizar dentro y fuera de una cadena.

Si el number puede ser negativo, use (Math.abs(number) % 10);

A continuación se muestra una solución más simple para obtener el último dígito de un int :

 public int lastDigit(int number) { return number % 10; } 

Utilizar

 int lastDigit = number % 10. 

Lea sobre el operador de Modulo: http://en.wikipedia.org/wiki/Modulo_operation

O, si quieres ir con tu solución de String

 String charAtLastPosition = temp.charAt(temp.length()-1); 

No es necesario usar ninguna strings Supera la carga.

 int i = 124; int last= i%10; System.out.println(last); //prints 4 

aquí está tu método

  public int lastDigit(int number) { //your code goes here. int last =number%10; return last; } 

Sin usar ‘%’ .

 public int lastDigit(int no){ int n1 = no / 10; n1 = no - n1 * 10; return n1; } 

Acabas de crear una matriz de enteros vacía. La guess matriz no contiene nada que yo sepa. El rest debes entrenar para mejorar.

Su matriz no tiene inicialización. Por lo tanto, dará un valor por defecto de cero. Puedes probar así también

 String temp = Integer.toString(urNumber); System.out.println(temp.charAt(temp.length()-1)); 

public static void main (String [] args) {

  System.out.println(lastDigit(2347)); } public static int lastDigit(int number) { //your code goes here. int last = number % 10; return last; } 

0 / p:

7

Use StringUtils, en caso de que necesite un resultado de cadena:

 String last = StringUtils.right(number.toString(), 1); 

Otra forma interesante de hacerlo que también permitiría algo más que el último número que se tomaría sería:

 int number = 124454; int overflow = (int)Math.floor(number/(1*10^n))*10^n; int firstDigits = number - overflow; //Where n is the number of numbers you wish to conserve 

En el ejemplo anterior si n era 1, entonces el progtwig regresaría: 4

Si n fuera 3 entonces el progtwig devolvería 454

Aunque la mejor manera de hacerlo es usar% si insiste en usar cadenas esto funcionará

 public int lastDigit(int number) { return Integer.parseInt(String.valueOf(Integer.toString(number).charAt(Integer.toString(number).length() - 1))); } 

pero acabo de escribir esto para completarlo. No use este código es simplemente horrible

    Intereting Posts