Bonjour,
Je veux faire un switch sur des strings mais cela n'est pas possible. Est - il possible d'affcter à mes string des valeur (une sorte d'énumération) et ainsi de faire des switch? si oui quelqu'un aurait-il un exemple?
Merci
Version imprimable
Bonjour,
Je veux faire un switch sur des strings mais cela n'est pas possible. Est - il possible d'affcter à mes string des valeur (une sorte d'énumération) et ainsi de faire des switch? si oui quelqu'un aurait-il un exemple?
Merci
Hum tu peux les hascher... :lol:
Non sérieusement, si tu utilises des String du genre "145", "147", "144"... tu peux les parser, par exemple.
Sinon, je pense que le "if" est la meilleure (seule?) solution.
ce sont des strings
j'ai un état il peut être "DORT" "MANGE"...
il n'existe pas des enumération en java
Il te faut faire une classe et mettre des public static final... c'est ça l'énumération en Java... Ou alors bosser avec des intCitation:
Envoyé par schousso
usw...Code:
1
2 int DORT = 0; int MANGE = 1;
petit probleme
et dans chien j'auraiCode:
1
2
3 DORT = "chien qui dort" MANGE = "chien qui mange"
et apres je voudraisCode:
1
2 etat = DORT
Code:
1
2
3
4 switch(etat) DORT :... MANGE :
Réponse directe à la question : ce n'est pas possible.
Réponse indirecte : pourquoi veux-tu absolument un switch ?
les ordres du supérieur...
Salut,
Une solution :
Et là tu peux utiliser DORT et MANGE dans un switch...Code:
1
2
3
4
5
6
7
8
9
10
11 public class Chien { public static final int DORT = 0; public static final int MANGE = 1; public static String[] strings = { "chien qui dort", "chien qui mange" }; public static String getString (int etat) { return strings[etat]; } }
Sinon pour les enumération tu peux jeter un coups d'oeil à la faq de developpez.com pour faire quelque chose qui s'en approche...
Ou alors si tu peux passer à la version 1.5 de Java qui permet de créer des enumérations. Mais le 1.5 est toujours en beta et pour utiliser ton programme une MV 1.5 est obligatoire...
a++
Juste à titre informatif, faire des switch/case sur des String sera désormais possible avec Java 7!
La JDK7 sera disponible en grande partie dès le 28 juillet prochain, d'ici là, les solutions proposées ici à l'aide d'enums font très bien l'affaire!
Si dans la mesure où le changement d'état va affecter le comportement de ton objet chien, je pense qu'il te faudrait t'intéresser au 'state pattern'.
@Fifan31 : le post remonte à 2004, je pense que la personne est passé à autre chose :P
@dominicbri7 : Merci de l'info
cela est possible à partie de la Jre 1.7. rien d'autre a faire juste:
switch(chaine){
case "toto": ........
case "tata":.........
}
@pasquierase
Le post remonte à 11 ans ! Comme @Ivelios, je pense que @schousso a du se débrouiller depuis ...
Merci de ne pas déterrer d'anciens posts.