Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1066 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Où est l'erreur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Où est l'erreur ?

n°574901
WhatDe
Posté le 24-11-2003 à 17:45:16  profilanswer
 

Code :
  1. public class Test
  2. {
  3. public static void main(String[] args)
  4. {
  5.  char caractère = getType("ERR_TEST" );
  6.  System.out.println(caractère);
  7. }
  8. public static char getType(String string)
  9. {
  10.  String[] bla = new String[2];
  11.  bla = string.split("_", 2);
  12.  System.out.println("bla[0]: " + bla[0]);
  13.  System.out.println("bla[1]: " + bla[1]);
  14.  if(bla[0] == "ERR" )
  15.  {
  16.   System.out.println("ERR: TRUE" );
  17.   return 'E';
  18.  }
  19.  else
  20.  {
  21.   System.out.println("ERR: FALSE" );
  22.   return 'R';
  23.  }
  24. }
  25. }


 
Ca me donne en output:

Code :
  1. bla[0]: ERR
  2. bla[1]: TEST
  3. ERR: FALSE
  4. R


 
En gros le test if(bla[0] == "ERR" ) ne marche pas, j'ai l'impression que ca vient de l'utilisation du tableau.
 
J'ai retourné tout dans tous les sens, je trouve pas mon erreur :(
 
Merci de m'aider  :ange:

mood
Publicité
Posté le 24-11-2003 à 17:45:16  profilanswer
 

n°574902
Shogun2002
Posté le 24-11-2003 à 17:46:25  profilanswer
 

if(bla[0].equals("ERR" ))
 
ça devrait aller comme test


Message édité par Shogun2002 le 24-11-2003 à 17:46:44
n°574908
WhatDe
Posté le 24-11-2003 à 17:48:31  profilanswer
 

Oui impec merci :)
 
Mais pourquoi est ce que ca n'allais pas alors que l'output affichait bien ERR ?
 
edit: parcque l'output c'était bla[0].toString() et le test se faisait sur l'adresse de bla[0] ?


Message édité par WhatDe le 24-11-2003 à 17:49:42
n°574911
benou
Posté le 24-11-2003 à 17:50:17  profilanswer
 

== : teste l'égalité de la référence (valeur du pointeur)
 
equals() : teste l'égalité de l'objet (même valeur au sens définit par l'objet. Pour les String, equals signifie même chaine de caractère)


---------------
ma vie, mon oeuvre - HomePlayer
n°574913
WhatDe
Posté le 24-11-2003 à 17:51:19  profilanswer
 

Ok c'est bien ce que je me disais, merci à vous 2 ;)

n°574914
R3g
fonctionnaire certifié ITIL
Posté le 24-11-2003 à 17:51:36  profilanswer
 

WhatDe a écrit :

Oui impec merci :)
 
Mais pourquoi est ce que ca n'allais pas alors que l'output affichait bien ERR ?
 
edit: parcque l'output c'était bla[0].toString() et le test se faisait sur l'adresse de bla[0] ?

L'opérateur == compare les références. ta comparaison bla[0] == "ERR" aurait été vraie si les deux chaines avaient été la même. Or la, ce sont deux chaines distinctes, même si elles contiennent les mêmes caractères.
 
[:grilled]


Message édité par R3g le 24-11-2003 à 17:52:07

---------------
Au royaume des sourds, les borgnes sont sourds.
n°574928
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-11-2003 à 17:58:10  profilanswer
 

ça devrait pas exister les opérateurs en programmation objet :o

n°574930
R3g
fonctionnaire certifié ITIL
Posté le 24-11-2003 à 17:59:10  profilanswer
 

Harkonnen a écrit :

ça devrait pas exister les opérateurs en programmation objet :o

Ca depend... = c'est quand même bien pratique;


---------------
Au royaume des sourds, les borgnes sont sourds.
n°574980
BifaceMcLe​OD
The HighGlandeur
Posté le 24-11-2003 à 18:37:57  profilanswer
 

Tant que leur utilité est parfaitement claire, les opérateurs sont très pratiques. Et ils ne nuisent pas à la lisibilité (quant à l'efficacité, c'est hors de propos, puisque derrière, opérateur ou pas, la machine fait un classique appel de fonction).
En Ada, par exemple, il existe de nombreux opérateurs que l'utilisateur peut surcharger. Et Ada est considéré comme un des langages les plus efficaces du point de vue lisibilité.
 
Java a également adopté une définition claire des quelques opérateurs qu'il propose. Le problème avec le == sur des chaînes, c'est qu'il heurte la conception communément admise par beaucoup de programmeurs selon laquelle les chaines de caractères sont des atomiques. Ce qu'elles ne sont pas en Java...


Message édité par BifaceMcLeOD le 24-11-2003 à 18:39:07

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Où est l'erreur ?

 

Sujets relatifs
[MySQL] Erreur de syntaxe que je ne comprend pas ! (aléatoire en plus)[access] erreur MsgBox
Virer les doublons des combobox [erreur inside]Envoie de mails: Erreur 550 Rejected by final destination
Code d'erreur[VB] problème erreur HELP
erreur exécution...[CSS2] Erreur d'affichage (corrigé)
erreur inconnue[vbscript]erreur de chemin avec shell.run
Plus de sujets relatifs à : Où est l'erreur ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR