Exercice 1 sur 3
Longueur d'une chaîne
Les chaînes de caractères ont plein de méthodes pratiques. La plus simple : .length()
String texte = "Bonjour";
IO.println(texte.length()); // 7
Attention : pour les String, c'est .length() avec parenthèses — pour les tableaux, c'est .length sans !
Remplace ??? pour afficher la longueur du mot.
Code de départ
void main() {
String mot = "Programmation";
IO.println(???);
}
Contexte
Méthodes utiles des String
Les String ont plein de méthodes intégrées : .toUpperCase(), .toLowerCase(), .substring(debut, fin), .indexOf("texte"), .replace("ancien", "nouveau"), .trim() (supprime les espaces au début et à la fin), .contains("texte"), .startsWith("prefixe").
Comme les String sont immuables, toutes ces méthodes renvoient une nouvelle chaîne — la chaîne d'origine ne change pas.
Exercice 2 sur 3
Comparer des chaînes
Piège classique en Java : on ne compare pas des String avec ==, on utilise .equals() :
if (nom.equals("Anna")) {
// ...
}
Remplace ??? par la bonne comparaison.
Code de départ
void main() {
String reponse = "oui";
if (???) {
IO.println("C'est parti !");
} else {
IO.println("Annulé");
}
}
Contexte
Le String Pool
Java a un String Pool — un cache pour les littéraux de chaîne. Si tu écris "salut" deux fois dans ton code, les deux pointent vers le même objet dans le pool. C'est pour ça que == marche par hasard quand tu compares deux littéraux — mais c'est de la chance, pas une règle sur laquelle compter !
Les String créées à l'exécution (par exemple avec new String("salut"), par concaténation ou à partir d'une saisie utilisateur) ne finissent pas dans le pool. Donc : utilise toujours .equals().
Exercice 3 sur 3
Switch
Quand tu as une longue chaîne de if-else if, un switch est plus lisible :
switch (valeur) {
case 1: ...; break;
case 2: ...; break;
default: ...;
}
Important : n'oublie pas le break; — sinon Java continue tout droit dans le case suivant !
Ajoute le case manquant pour mercredi.
Code de départ
void main() {
int jour = 3;
switch (jour) {
case 1: IO.println("Lundi"); break;
case 2: IO.println("Mardi"); break;
// Ajoute le case 3 pour "Mercredi"
default: IO.println("Autre jour");
}
}
Contexte
Expressions switch (depuis Java 14)
Le Java moderne a une variante de switch plus élégante avec -> :
String jour = switch (nr) { case 1 -> "Lundi"; case 2 -> "Mardi"; default -> "Autre"; };
Avantages : pas besoin de break, elle peut renvoyer directement une valeur, et le compilateur refuse de compiler si un cas n'est pas couvert (une expression switch doit être exhaustive). Le switch classique existe toujours, cela dit.