programmation Java (école d'ingénieur) · Chapitre 6 · Exercice de TD
Inverser une chaîne
Chaînes de caractères et entrées · niveau 1 (application)
Énoncé
- Écrire
static String inverser(String s)avec une boucle et la concaténation+. - En écrire une seconde version avec
StringBuilder. - Comparer leurs durées pour une chaîne de caractères (
"x".repeat(50_000)), et expliquer l'écart.
Corrigé
static String inverser(String s) {
String r = "";
for (int i = s.length() - 1; i >= 0; i--) {
r = r + s.charAt(i);
}
return r;
}
static String inverserVite(String s) {
return new StringBuilder(s).reverse().toString();
}
Les deux donnent ruojnob pour bonjour. Mesure sur caractères :
n = 50000 : 84 ms contre 0 ms
La première version crée chaînes successives, de longueurs , , …, , et recopie au total environ milliard de caractères ; la seconde recopie la chaîne une fois. Les durées dépendent de la machine, mais l'écart croît comme : doubler la longueur double le rapport.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.