Convertir chifffres en lettres en java

Fermé
éric - 17 mai 2004 à 10:12
 éric - 18 mai 2004 à 10:06
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
A voir également:

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
1
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
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114 > éric
17 mai 2004 à 11:59
Trop long :
Exemple :
int i=11;
System.out.println(Long.toHexString(i));


fait la même chose.

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0
éric > batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008
17 mai 2004 à 13:32
Bonjour !
Est ce que tu pourrais expliciter ce que tu as fait STP
merci
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114 > éric
17 mai 2004 à 14:40
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 ?
0
éric > batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008
17 mai 2004 à 15:25
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.
0
Ok j'essaye merci
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
17 mai 2004 à 10:40
'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 ?
0
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.
0
Bonjour fabien , tu me conseille e créer 2 tableaux , mais comment t'écrirai le swith?
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114 > éric
17 mai 2004 à 16:31
Déjà, comment tu as déclaré ton tableau et quelles sont tes erreurs de compil ?

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
17 mai 2004 à 16:42
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 ?
0
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
0
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114 > éric
18 mai 2004 à 09:47
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 ?
0
éric > batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008
18 mai 2004 à 10:06
Bonjour , Merci pour ton aide entre temps j'ai trouvé la solution de mon problème, Merci de m'avoir écouté!
0