Problème de String qui ne se met pas à jour

Résolu/Fermé
Nonnonnon Messages postés 5 Date d'inscription jeudi 18 septembre 2014 Statut Membre Dernière intervention 9 octobre 2014 - Modifié par Nonnonnon le 18/09/2014 à 22:26
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 19 sept. 2014 à 00:15
Bonjour. J'ai commencé la programmation java il y a une semaine. En regardant ça et là sur internet je me débrouille plus ou moins mais là je bloque:

string1 c'est une string tapée par l'utilisateur ça pas de problème.
string s c'est la string voulue.

String s = null;
char c = string1.charAt(4);
switch(c){
case 0:s="a"; break;
case 1:s="b"; break;
case 2:s="c"; break;
case 3:s="d"; break;
case 4:s="e"; break;
case 5:s="f"; break;
case 6:s="g"; break;
case 7:s="h"; break;
case 8:s="i" ; break;
case 9:s="j"; break;
}

System.out.println(s);
Et là string s n'a pas pris la valeur entre temps et tout ce qui est "print" c'est un horrible "null" POURQUOI ? moi je veux une lettre !
aidez moi svp je ne comprends pas.
Merci d'avance !
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 18/09/2014 à 23:21
Bonjour,

Quelle est la valeur de string1 ? Affiches c pour voir... mais il y a peu de chances qu'il soit égal aux caractères de 0 à 9 qui sont pour la plupart non affichables. Je pense que tu as confondus avec les caractères '0' à '9' :

switch (c) {
case '0':
    s = "a";
    break;
case '1':
    s = "b";
    break;
case '2':
    s = "c";
    break;
...
}

La confiance n'exclut pas le contrôle
1
Nonnonnon Messages postés 5 Date d'inscription jeudi 18 septembre 2014 Statut Membre Dernière intervention 9 octobre 2014
18 sept. 2014 à 23:58
Bonjour kx. String1 est donnée par un scanner(system.in) . Je crois que tu as trouvé le problème qui vient des ' ' que j'avais pas mis. Je teste demain avec les ' ' . Merci !

Ps: si j'ai bien compris c'est juste des guillemets pour char ?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 sept. 2014 à 00:15
"des guillemets pour char"
En quelque sorte. Parce que 0, 1, 2... ce sont des int. Rien à voir avec '0', '1', '2' qui sont des char.
Il y a une conversion implicite entre char et int, basée sur leur valeur Unicode.

Par exemple : le caractère '9' a pour valeur entière 57, alors que la valeur entière 9 correspond au caractère '\t' (la tabulation). Confondre les deux entraînera forcément des erreurs !

Voir : Code ASCII
0