Adloun

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

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →