Exercices de Manipulation des Chaînes en JavaExercices de Manipulation des Chaînes en Java

 

Contexte : Hôpital du District de Dschang

L’Hôpital du District de Dschang, situé au Cameroun, est un centre médical de référence offrant des services de santé variés aux patients. Face à une demande croissante de soins, l'hôpital a développé un système informatique pour gérer ses opérations internes, notamment l'administration des patients, la gestion des médicaments, et le suivi des traitements. Ce système repose fortement sur la manipulation des chaînes de caractères en Java pour traiter les informations des patients, telles que les noms, les diagnostics, et les prescriptions médicales. Le bon fonctionnement de ce système est essentiel pour garantir un service efficace.

Objectif des exercices

Ces exercices sont conçus pour évaluer et renforcer votre compréhension de la manipulation des chaînes de caractères en Java, en vous plongeant dans des scénarios réalistes liés à la gestion des patients à l'hôpital. Ils couvrent les concepts clés des classes String, StringBuffer, et StringBuilder, en mettant l'accent sur des opérations comme la création, la manipulation, la comparaison, la concaténation et le formatage des chaînes de caractères.

Série d'exercices

Section 1 : Questions de cours et compréhension théorique 

  1. Qu'est-ce qu'une chaîne de caractères en Java ?
    Déclarez une variable nomPatient de type String avec la valeur "Jean Dupont". Comment ce type se distingue-t-il des types primitifs ? Expliquez en vous basant sur le concept de type référence.
  2. Donner la différence entre == et equals()
    Déclarez deux variables nomMedecin1 et nomMedecin2 de type String, contenant respectivement "Dr. House" et "Dr. House". Montrez comment utiliser == et equals() pour comparer ces deux chaînes. Expliquez pourquoi les résultats pourraient être différents.
  3. Qu'es ce qu'un StringBuffer ?
    Déclarez une variable dossierPatient de type StringBuffer initialisée avec "Patient: Yankam Joel\nHistorique médical:\n". Ajoutez-y "Visite 1: 12/01/2024 - Consultation générale\n" et "Visite 2: 20/02/2024 - Bilan sanguin\n". Pourquoi serait-il préférable d'utiliser StringBuffer plutôt que String dans ce cas ?
  4. Qu'appelle t-on immutabilité des objets String ?
    Déclarez une variable diagnostic de type String contenant "Diabetes Mellitus". Modifiez cette chaîne en ajoutant " Type 2". Que se passe-t-il en termes d'immutabilité ? Quels sont les avantages dans un environnement multi-thread ?
  5. Quel est le role de la méthode  compareTo() ?
    Déclarez deux variables nomPatientA et nomPatientB de type String, contenant respectivement "Dupont" et "Durand". Utilisez compareTo() pour les trier. Écrivez le code et expliquez le résultat.

Section 2 : Analyse de code et compréhension pratique 

  1. Analyse du code avec == et equals()
    String patientName = "Marie";
    String anotherPaient = "Marie";
    if (patientName == anotherPatient) {
        System.out.println("Same patient object");
    }
    if (patientName.equals(anotherPatient)) {
        System.out.println("Same patient name");
    }
                                
    Expliquez pourquoi l'opérateur == et la méthode equals() peuvent donner des résultats différents.
  2. Déclarez une variable medicalNote de type StringBuffer initialisée avec "Patient shows symptoms of ". Ajoutez "fever, cough" à cette chaîne. Que fait la méthode append() et quel est le résultat affiché ?
  3. Soit le bout de code suivant : 
    StringBuffer symptoms = new StringBuffer("fever");
    symptoms.replace(0, 5, "cough");
    System.out.println(symptoms);
                               
    Expliquez ce que fait la méthode replace() et prédisez le résultat.
  4. Soit le bout de code suivant avec methode :  insert()
    StringBuffer prescription = new StringBuffer("Paracetamol 500mg");
    prescription.insert(11, " : ");
    System.out.println(prescription);
                                
    Quel sera le résultat de ce code et pourquoi ?
  5. Soit le bout de code suivant :
    String diagnostic = "Diabetes Mellitus Type 2";
    String condition = diagnostic.substring(9, 17);
    System.out.println(condition);
                                
    Expliquez le rôle de la méthode substring() et le résultat qu'elle produit.

Section 3 : Écriture de code 

  1. Écrivez un programme qui compare deux chaînes nomPatient1 = "Jean Dupont" et nomPatient2 = "Marie Claire" et détermine laquelle vient en premier dans l'ordre alphabétique.
  2. Déclarez une chaîne nomPatient = "Marie-Claire". Écrivez une méthode qui renvoie le nombre de caractères dans ce nom.
  3. Déclarez les variables nom = "Jean Dupont", age = 45, et idPatient = "12345". Combinez-les en une seule chaîne formatée en utilisant String.format() pour produire une sortie structurée.
  4. Déclarez une variable symptomes de type StringBuilder initialisée avec "Symptômes: ". Ajoutez "fièvre", "toux" et "maux de tête" à cette chaîne. Quel est le résultat final ?
  5. Déclarez une variable nomPatient = "Marie-Claire". Écrivez une méthode qui vérifie si la chaîne "Marie" est contenue dans nomPatient et affiche un message approprié.

CORRECTION :

RAPPELS

Méthodes de la classe String

  1. charAt(int index) : Retourne le caractère à la position spécifiée.
  2. compareTo(String anotherString) : Compare deux chaînes lexicographiquement.
  3. concat(String str) : Concatène la chaîne spécifiée à la fin de la chaîne actuelle.
  4. contains(CharSequence sequence) : Vérifie si la chaîne contient la séquence de caractères spécifiée.
  5. endsWith(String suffix) : Vérifie si la chaîne se termine par le suffixe spécifié.
  6. equals(Object anObject) : Compare la chaîne à l'objet spécifié pour l'égalité.
  7. equalsIgnoreCase(String anotherString) : Compare deux chaînes en ignorant la casse.
  8. indexOf(int ch) : Retourne l'index de la première occurrence du caractère spécifié.
  9. isEmpty() : Vérifie si la chaîne est vide.
  10. length() : Retourne la longueur de la chaîne.
  11. replace(CharSequence target, CharSequence replacement) : Remplace toutes les occurrences de la séquence cible par la séquence de remplacement.
  12. split(String regex) : Divise la chaîne en sous-chaînes en utilisant l'expression régulière spécifiée.
  13. startsWith(String prefix) : Vérifie si la chaîne commence par le préfixe spécifié.
  14. substring(int beginIndex) : Retourne une sous-chaîne à partir de l'index spécifié.
  15. toLowerCase() : Convertit tous les caractères de la chaîne en minuscules.
  16. toUpperCase() : Convertit tous les caractères de la chaîne en majuscules.
  17. trim() : Supprime les espaces blancs au début et à la fin de la chaîne.

Méthodes de la classe StringBuffer

  1. append(String str) : Ajoute la chaîne spécifiée à la fin du tampon.
  2. insert(int offset, String str) : Insère la chaîne spécifiée à la position donnée dans le tampon.
  3. replace(int start, int end, String str) : Remplace les caractères dans la plage spécifiée par la chaîne spécifiée.
  4. delete(int start, int end) : Supprime les caractères dans la plage spécifiée.
  5. reverse() : Inverse les caractères du tampon.
  6. capacity() : Retourne la capacité du tampon de caractères.
  7. ensureCapacity(int minimumCapacity) : Assure que la capacité du tampon est d'au moins la capacité minimale spécifiée.

Méthodes de la classe StringBuilder

  1. append(String str) : Ajoute la chaîne spécifiée à la fin du constructeur.
  2. insert(int offset, String str) : Insère la chaîne spécifiée à la position donnée dans le constructeur.
  3. replace(int start, int end, String str) : Remplace les caractères dans la plage spécifiée par la chaîne spécifiée.
  4. delete(int start, int end) : Supprime les caractères dans la plage spécifiée.
  5. reverse() : Inverse les caractères du constructeur.
  6. capacity() : Retourne la capacité du constructeur de caractères.
  7. ensureCapacity(int minimumCapacity) : Assure que la capacité du constructeur est d'au moins la capacité minimale spécifiée.

Si vous avez trouvé les exercices corrigés en Java de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 652027193 | Réaliser Par Joël_Yk

Exercices de Manipulation des Flux en Java
Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam