Comparer des chaînes de caractères en Java

  1. Comparer des chaînes de caractères en Java en utilisant la méthode compareTo()
  2. La méthode d’opérateur L’égalité ==
  3. La méthode equals()
  4. La méthode equals() Sensibilité à la casse
  5. La méthode contentEquals()

Presque tous les développeurs Java devront à un moment donné comparer deux chaînes de caractères pour compléter la logique d’une application. Une variable de chaîne est une collection de caractères. Pour comprendre les opérations de comparaison possibles avec une chaîne de caractères, nous devons d’abord comprendre les propriétés d’une chaîne.

  1. Les chaînes de caractères sont immuables. Cela signifie qu’elles ne peuvent pas se développer et que toute modification d’une chaîne entraîne la formation d’une nouvelle chaîne. C’est parce qu’elles sont soutenues en interne par des tableaux de caractères qui sont immuables.
  2. Chaque fois que nous disons qu’une chaîne est créée, deux objets placés dans des zones de mémoire différentes sont créés. L’un est créé dans la zone du tas, tandis que le second est créé dans le pool de constantes de la chaîne. La référence de la chaîne oriente la machine vers l’objet de la zone de tas.

Par exemple,

String mystring = "World"

Dans ce cas, mystring pointe vers la zone du tas où la chaîne World est stockée.

Vous trouverez ci-dessous les quatre méthodes utilisées pour comparer les chaînes de caractères en java, qui sont expliquées en détail dans cet article :

  1. La méthode compareTo()
  2. L’opérateur d’égalité ==
  3. La méthode equals()
  4. La méthode contentEquals()

Comparer des chaînes de caractères en Java en utilisant la méthode compareTo()

Il compare lexicographiquement deux chaînes de caractères. Il fonctionne en attribuant d’abord à chaque caractère de la chaîne une valeur Unicode, puis en comparant les chaînes. Ce processus renvoie le résultat sous la forme d’un zéro, d’un nombre positif ou d’un nombre négatif.

  1. Le résultat est zéro lorsque les deux chaînes comparées sont égales sur le plan lexicographique.
  2. Le résultat est positif si la première chaîne est plus grande que la seconde.
  3. Le résultat est négatif lorsque la deuxième chaîne est plus grande que la première.

Il y a deux façons d’utiliser la méthode compareTo().

Comparer deux chaînes de caractères littérales

Comparons la chaîne 1 et la chaîne 2. Le résultat que nous obtenons en comparant ces deux chaînes est un type int. Exemple :

public class CompareToCode {
    public static void main(String args[]) {
        String string1 = "now";
        String string2 = "now";
        int result = string1.compareTo(string2);
        System.out.println(result);
   }
}

Production :

0

Comparaison d’une chaîne et d’un objet

La méthode compareTo() permet également de comparer des objets non référencés avec une chaîne de caractères. Exemple :

public class CompareTo {
    public static void main(String args[]) {
        String string1 = "now";
        int result = string1.compareTo("now");
        System.out.println(result);
    }
}

Production :

0

compareTo() Sensibilité à la casse

La méthode compareTo() est sensible à la casse. Cela signifie que même si deux chaînes de caractères sont identiques, elle les montrera comme différentes si elles ne sont pas uniformes. Exemple :

public class CompareTo {
    public static void main(String args[]) {
        String string1= "hello";
        String string2 ="HELLO";
        int result= string1.compareTo(string2);
        System.out.println(result);
   }
}

Production :

-32

Le monde hello et HELLO sont traités différemment de ce qui précède, et nous obtenons donc un résultat de -32.

Cependant, une autre méthode dans cette classe de chaîne ignore la sensibilité à la casse - compareToIgnoreCase(). Exemple :

public class CompareToIgnoreCase {
    public static void main(String args[]) {
        String string1= "hello";
        String string2 ="HELLO";
        int result= string1.compareToIgnoreCase(string2);
        System.out.println(result);
   }
}

Production :

0

La méthode d’opérateur L’égalité ==

Il s’agit d’une méthode de comparaison de chaînes de caractères java qui compare si deux objets se trouvent dans le même emplacement mémoire. Exemple :

public class EqualityOperator {
    public static void main(String args[]) {
        String oneS = new String("Wow");
        String twoS = new String("Wow");
        System.out.println(oneS == twoS);
    }
}

Production :

false

L’opérateur == compare un objet S et deux objets S pour vérifier s’ils sont identiques. Les deux chaînes, oneS et twoS sont des références différentes et renvoient donc faux. Un S et deux S sont deux objets différents. Cependant, ils ont tous les deux la même valeur en eux.

La méthode equals()

C’est une méthode utilisée pour comparer deux chaînes de caractères en java en fonction de leur valeur. Le résultat de cette méthode est soit vrai, soit faux. Si les chaînes de caractères comparées ne sont pas égales à la valeur, la méthode renvoie false. Si les chaînes de caractères comparées sont égales, la méthode renvoie vrai. Par exemple,

public class Equals {
    public static void main(String args[]) {
        String oneS = new String("Wow");
        String twoS = new String("Wow");
        System.out.println(oneS.equals(twoS));
    }
}

Production :

true

La méthode equals() Sensibilité à la casse

La méthode equals() est sensible à la casse et voit donc les mêmes mots coiffés différemment comme des mots différents. Par exemple :

public class Equals {
    public static void main(String args[]) {
        String oneS = new String("Wow");
        String twoS = new String("WOW");
        System.out.println(oneS.equals(twoS));
    }
}

Production :

false

Dans le cas ci-dessus, wow comparé à WOW en utilisant la méthode equals() renvoie faux.

Cependant, si vous voulez utiliser la méthode equals() et ne pas tenir compte de la sensibilité à la casse, vous utilisez la méthode equalsToIgnoreCase(). Dans l’exemple ci-dessus, la méthode equalsIgnoreCase() renverrait true.

public class EqualsIgnorecase {
    public static void main(String args[]) {
        String oneS = new String("Wow");
        String twoS = new String("WOW");
        System.out.println(oneS.equalsIgnoreCase(twoS));
    }
}

Production :

true

La méthode contentEquals()

Il s’agit également d’une méthode de comparaison de chaînes de caractères en java qui compare un tampon et une chaîne de caractères et renvoie false ou true. Si la chaîne correspond au tampon de chaîne auquel elle est comparée, la méthode renvoie true. Si la chaîne ne correspond pas au tampon de chaîne auquel elle est comparée, la méthode renvoie false.

Exemple :

public class ContentEquals {
    public static void main(String args[]) {
        String firstS = new String("Here we are");
        StringBuffer secondS = new StringBuffer("Here we are");
        System.out.println(firstS.contentEquals(secondS));
    }
}

Production :

true