tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
ISIMA
  • twitter
  • linkedin
  • viadeo

local_cafe Comparaison de chaînes local_cafe

Date de première publication : 2019/12/09

L'idée du TP est de montrer comment comparer les chaînes de caractères, les java.lang.String en Java.


// Quelques déclarations préalables
String s1 = "loic";
String s2 = "loic";
String s3 = new String("loic");
String s4 = new String("loic");
String s5 = s3;
String s6 = null;

// Test de l'opérateur égal == 
System.out.print("s1==s2? ");
System.out.println(s1==s2);
System.out.print("s1==s3? ");
System.out.println(s1==s3);
System.out.print("s3==s4? ");
System.out.println(s3==s4);
System.out.print("s5==s3? " );
System.out.println(s5==s3);

// Test de la méthode equals()
System.out.print("s1.equals(s3)? ");
System.out.println(s1.equals(s3));
System.out.print("s1.equals(s6)? ");
System.out.println(s1.equals(s6));
System.out.print("s6.equals(s1)? ");
System.out.println(s6.equals(s1));

Programme standalone

Pour tester ces quelques lignes, il faut juste une classe bidon et une méthode de classe main() :


public class Bidon {
  public static void main(String[] argv) {
     // copier coller le code précédent
  }
}

puis compiler et exécuter le tout :

Vous pouvez également utiliser un projet Eclipse en précisant que vous voulez une méthode main(). Exécutez le programme avec le bouton play_circle_filled.


javac Bidon.java
java Bidon

Equivalent avec des tests unitaires

Si vous voulez utiliser des tests unitaires, le plus simple est de mettre en œuvre l'exercice avec un EDI. Il faut d'abord créer un nouveau projet Java vide

nouveau projet java sous ECLIPSE

Il faut ensuite créer un fichier de tests JUnit.

Créer un fichier JUNIT sous ECLIPSE

Il reste l'étape la plus importante : ajouter la bibliothèque de tests comme dépendance à la fois à la compilation puis à l'exécution...

ajout de la dépendance JUNIT sous ECLIPSE

Il suffit de prendre une méthode avec l'annotation @Test comme cela :


import static org.junit.Assert.*;
import org.junit.Test;

public class ChainesTest {

  @Test
  public void test() {
    // adaptation du code donné
  }

}

Une instruction comme s1==s2; peut être vérifiée avec une des deux formes suivantes :


assertTrue (s1 == s2);      // OU
assertFalse(s1 == s2);

Un test comme s1.equals(s2) peut être lui changé en


assertEquals   (s1, s2);  // OU
assertNotEquals(s1, s2);

Les tests sont exécutés grâce au bouton play_circle_filled. Si un seul "assert" échoue, le test est mauvais :-)

exemple d'execution JUNIT sous ECLIPSE

Si vous voulez plus d'informations sur la bibliothèque de test JUnit, go this way