Convertir chifffres en lettres en java
éric
-
éric -
éric -
Bonjour je programme sous java et j'aimerai convertir des nombres en lettres,
j'ai par exempleun tableau {0,1,2,3}et j'aimearai qu'à l'affichage ils prennent "la valeur" {a, b ,c,d}.
Merci
j'ai par exempleun tableau {0,1,2,3}et j'aimearai qu'à l'affichage ils prennent "la valeur" {a, b ,c,d}.
Merci
5 réponses
-
Yop,
je vois 2 possibilités :
- tu fais un énorme switch avec toutes tes possibilités
- tu regardes quelle est la différence en ASCII entre 0 et a. Si je ne me trompe pas, les nombres ASCII se suivent donc tu n'auras qu'à ajouter la meme somme.
Je ne suis pas sur pour la 2eme solution. Vérifie.
++
Nico-
bonjour, j'ai éeeayé avec un switch mais ça me met des erreurs à la compilation : voici mon bout de code :
for(j=0;j<tab.length;j++){
switch(tab[1][j]){
case 0 : System.out.println ( tab[1][j]="a");break;
case 1 : System.out.println ( tab[1][j]="b");break;
case 2 : System.out.println ( tab[1][j]="c");break;
case 3 : System.out.println ( tab[1][j]="d");break;
case 4 : System.out.println ( tab[1][j]="e");break;
case 5 : System.out.println ( tab[1][j]="f");break;
case 6 : System.out.println ( tab[1][j]="g");break;}
}
merci -
-
-
Euuu, expliciter quoi ?
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Long.html
J'ai utilisé une méthode de la classe Long pour cet exemple, c'est tout.
Elle permet d'afficher la valeur héxadécimale d'un nombre et c'est ce que tu veux, non ?
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? -
Bonjour batmat, je suis désolé mais je débute en java et ce qui est évident pour toi ne l'est pas forcément pour moi , et je ne comprends pas ce que tu me dis.je t'envoi ce que j'ai écrit pour que tu me dise si je suis sur la bonne route.Merci
En fait je l'ai déjà envoyé quelque message plus haut .qu'en penses tu?
Je ne comprends pas ce qui cloche.
-
-
-
'lut,
Long.toHexString()
Dans l'autre sens, il suffit d'utiliser paseLong ou parseInt avec le paramètre radix à 16
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? -
Dans ton case tu demande un affichage (system...) et une incrémentation impossible (tab[]=), il faut que tu définisse 2 tab 1 pour chaque type. du moins je pense.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Oh le boulet que je suis...
voilà, c'est ça qu'il faut écrire (en remplacant j par la variable que tu veux afficher et en encadrant le tout par ton itération) :System.out.println((char)('a'+j));
Si tu veux des explications, pose des questions plus précises sur ce que tu ne comprends pas.
Ce que tu as écrit plus haut est pas mal, c'est juste inutilement plus compliqué que ce que je viens d'écrire. Et la simplicité est la première chose vers laquelle il faut tendre en programmation, un programme qui fait des trucs avec un code compliqué et illisible ne sera bon qu'à jeter au premier bug...
Rappelle toi de ça : KISS => "Keep It Simple, Stupid !" ou "Small is beautiful" :-)
Si tu ne donnes pas la déclaration de ton tableau et les erreurs de compil que tu obtiens, je ne peux pas t'aider pour te dire où est ton erreur.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?-
Bonour Btmat;
J'ai suivi tes conseils et je ne suis pas loin d'arriver à mes fins seuleument , je crois que j'ai pas été clair dans mes explications, e n fait le tableau s'affiche comme ça:
1 3
2 5
0 6
0 5
et je voudrais qu'il s"affiche come ça:
b 3
c 5
a 6
a 5
Merci- Il faut se méfier du java parce qu'on est souvent habitué à jouer avec les caractères ASCII et le Java est en Unicode (ASCII : sur 8 bits => 256 possibilités, Unicode : 16 bits => 655536 !)
Mais bref, ça ça devrait marcher. La façon la plus propre que je vois, c'est d'utiliser le code de base et y ajouter le chiffre. C'est à dire qu'on va trouver le numéro du a et y ajouter donnera ... ben a :) 1 donnera b etc... (attention, si tes valeurs peuvent dépasser 26, vérifie bien que tu obtiens ce que tu cherche).
=> DONC, mais comment faire pour avoir le code de a ??? Eh ben comme en C : 'a'
Il faut donc ajouter 'a' à l'index de ta lettre et caster le résultat en char pour l'afficher.
Ça, chez moi ça marche® :int tab[][] = new int[2][4]; tab[0][0] = 1; tab[1][0] = 3; tab[0][1] = 2; tab[1][1] = 5; tab[0][2] = 0; tab[1][2] = 6; tab[0][3] = 0; tab[1][3] = 5; for (int j = 0; j < tab[0].length; j++) { System.out.println(((char)('a'+tab[0][j]))+" "+tab[1][j]); }
En espérant que ça t'aide...
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
-