Accueil > Non classé > La comparaison de chaînes de caractères en Java

La comparaison de chaînes de caractères en Java

Tout comme dans le langage C, la comparaison de chaînes de caractères en Java comporte un piège. En C, il faut utiliser la fonction strcmp(chaine1, chaine2). En effet, l’opérateur == teste si les adresses mémoire des 2 chaines sont égales et non pas si leur contenu est égale.

Il en est de même en Java. Les opérateurs == et != comparent des références et non des valeurs. Ces 2 opérateurs sont parfaits pour comparer des variables de type primitif, mais lorsque l’on a faire à des variables de type référence, il faut toujours utiliser la méthode equals(). Et comme vous avez pu le lire dans l’article sur les types de variables, String ne fait pas partie des 8 types primitifs.

Toutefois, sachez qu’il est quand même plus judicieux d’utiliser l’opérateur == lorsque vous souhaitez comparer une chaine par rapport à la référence null, l’opérateur == étant plus rapide que la méthode equals().

Enfin, certains se demanderont peut-être quelle est la différence entre les méthodes equals() et compareTo() de la classe String. Pour simplifier, la distinction se fait dans le type de la valeur de retour : equals() se contente de renvoyer true ou false, tandis que compareTo() renvoie un int indiquant quel chaine est placée avant l’autre selon l’ordre alphabétique.

  1. Pas encore de commentaire
  1. Pas encore de trackbacks