web-dev-qa-db-fra.com

Obtient le dernier chiffre d'un nombre

Je dois définir le dernier chiffre d’un nombre et l’affecter à la valeur. Ensuite, retournez le dernier chiffre.

Mon extrait de code ne fonctionne pas correctement ...

Code:

public int lastDigit(int number) {
    String temp = Integer.toString(number);
    int[] guess = new int[temp.length()];
    int last = guess[temp.length() - 1];

    return last;
}

Question:

  • Comment résoudre ce problème?
31
nazar_art

Il suffit de retourner (number % 10); c'est-à-dire prendre le module. Ce sera beaucoup plus rapide que d’analyser une chaîne.

Si number peut être négatif, utilisez (Math.abs(number) % 10);

132
Bathsheba

Vous trouverez ci-dessous une solution plus simple pour obtenir le dernier chiffre d’un int:

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

Utilisation

int lastDigit = number % 10. 

En savoir plus sur l'opérateur Modulo: http://en.wikipedia.org/wiki/Modulo_operation

Ou, si vous voulez aller avec votre solution String

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

Nul besoin d’utiliser strings. Son fardeau est trop lourd.

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

Sans utiliser '%'.

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

Une autre façon intéressante de le faire, qui permettrait également de prendre plus que le dernier numéro à prendre, serait:

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</code>

Dans l'exemple ci-dessus, si n était 1, le programme reviendrait: 4

Si n était 3, le programme renverrait 454

0
Samuel Newport
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

0
Manjunath Maruthi

Votre tableau n'a pas d'initialisation. Donc, cela donnera la valeur par défaut zéro. Vous pouvez essayer comme ça aussi

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

Utilisez StringUtils, au cas où vous auriez besoin du résultat de chaîne:

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

voici votre méthode

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

Vous venez de créer un tableau entier vide. Le tableau guess ne contient rien à ma connaissance. Le reste, vous devriez travailler pour aller mieux.

0
Peter Jaloveczki