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
- Qu'est-ce qu'une chaîne de caractères en Java ?
Déclarez une variablenomPatient
de typeString
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. - Donner la différence entre
==
etequals()
Déclarez deux variablesnomMedecin1
etnomMedecin2
de typeString
, contenant respectivement"Dr. House"
et"Dr. House"
. Montrez comment utiliser==
etequals()
pour comparer ces deux chaînes. Expliquez pourquoi les résultats pourraient être différents. - Qu'es ce qu'un
StringBuffer ?
Déclarez une variabledossierPatient
de typeStringBuffer
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'utiliserStringBuffer
plutôt queString
dans ce cas ? - Qu'appelle t-on immutabilité des objets
String ?
Déclarez une variablediagnostic
de typeString
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 ? - Quel est le role de la méthode
compareTo() ?
Déclarez deux variablesnomPatientA
etnomPatientB
de typeString
, contenant respectivement"Dupont"
et"Durand"
. UtilisezcompareTo()
pour les trier. Écrivez le code et expliquez le résultat.
Section 2 : Analyse de code et compréhension pratique
- Analyse du code avec
==
etequals()
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"); }
==
et la méthodeequals()
peuvent donner des résultats différents. - Déclarez une variable
medicalNote
de typeStringBuffer
initialisée avec"Patient shows symptoms of "
. Ajoutez"fever, cough"
à cette chaîne. Que fait la méthodeappend()
et quel est le résultat affiché ? - Soit le bout de code suivant :
StringBuffer symptoms = new StringBuffer("fever"); symptoms.replace(0, 5, "cough"); System.out.println(symptoms);
replace()
et prédisez le résultat. - Soit le bout de code suivant avec methode :
insert()
StringBuffer prescription = new StringBuffer("Paracetamol 500mg"); prescription.insert(11, " : "); System.out.println(prescription);
- Soit le bout de code suivant :
String diagnostic = "Diabetes Mellitus Type 2"; String condition = diagnostic.substring(9, 17); System.out.println(condition);
substring()
et le résultat qu'elle produit.
Section 3 : Écriture de code
- Écrivez un programme qui compare deux chaînes
nomPatient1 = "Jean Dupont"
etnomPatient2 = "Marie Claire"
et détermine laquelle vient en premier dans l'ordre alphabétique. - Déclarez une chaîne
nomPatient = "Marie-Claire"
. Écrivez une méthode qui renvoie le nombre de caractères dans ce nom. - Déclarez les variables
nom = "Jean Dupont"
,age = 45
, etidPatient = "12345"
. Combinez-les en une seule chaîne formatée en utilisantString.format()
pour produire une sortie structurée. - Déclarez une variable
symptomes
de typeStringBuilder
initialisée avec"Symptômes: "
. Ajoutez"fièvre"
,"toux"
et"maux de tête"
à cette chaîne. Quel est le résultat final ? - Déclarez une variable
nomPatient = "Marie-Claire"
. Écrivez une méthode qui vérifie si la chaîne"Marie"
est contenue dansnomPatient
et affiche un message approprié.