Se derniers chiffres d'un numéro de
J'ai besoin de définir le dernier chiffre d'un nombre affecter cette valeur.
Après cela, retour le dernier chiffre.
Mon bout 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?
- Pourquoi n'est-il pas de travail? Voulez-vous obtenir la valeur erronée ou une exception?
- Vous êtes en train de créer un tableau vide lorsque vous créez "deviner". Vous devez le remplir avec les personnages de temp trop. La bonne façon serait d'utiliser %10 comme la plupart des gens ont répondu ci-dessous. Mais pour corriger votre code sans changer l'approche, vous pouvez faire quelque chose comme
Integer.parseInt(temp.substring(temp.length()-1))
Vous devez vous connecter pour publier un commentaire.
Juste retour
(number % 10)
; c'est à dire prendre le module. Ce sera beaucoup plus rapide que l'analyse et de sortir d'une chaîne de caractères.Si
number
peut être négatif alors utiliser(Math.abs(number) % 10);
Ci-dessous est une solution plus simple comment faire pour obtenir le dernier chiffre d'un
int
:number
est négatif.Utilisation
Lire sur opérateur Modulo: http://en.wikipedia.org/wiki/Modulo_operation
Ou, si vous voulez aller avec votre
String
solutionPas besoin d'utiliser toute
strings
.Ses plus la charge.Sans l'aide de '%'.
Vous avez juste créé un vide tableau d'entiers. Le tableau
guess
ne contient rien à ma connaissance. Le reste, vous devez travailler pour obtenir mieux.Votre tableau n'ont pas d'initialisation. Donc, il va donner de la valeur par défaut de Zéro.
Vous pouvez essayer comme ça aussi
Utilisation StringUtils, dans le cas où vous avez besoin de la chaîne de résultat:
Une autre façon intéressante de faire ce qui permettrait également de plus que le dernier nombre de l'être:
Dans l'exemple ci-dessus si n est 1, alors le programme serait de retour: 4
Si n est 3 ensuite, le programme serait de retour 454
0/p:
7
ici est votre méthode
Bien que la meilleure façon de le faire est d'utiliser le % si vous insistez sur l'utilisation des chaînes que cela ne fonctionne
mais j'ai juste écrit ce que pour être complet. N'utilisez pas ce code. c'est juste horrible.