Adloun

programmation Java (école d'ingénieur) · Chapitre 13 · Exercice de TD

Nettoyer des saisies

Lambdas et streams · niveau 1 (application)

Énoncé

Une liste contient des noms de villes saisis sans soin : [" paris", "", "LYON ", " ", "nAntes"]. Avec replaceAll et removeIf, et sans aucune boucle, la transformer en [Paris, Lyon, Nantes] : blancs retirés aux extrémités, chaînes vides supprimées, première lettre en majuscule et les autres en minuscules. Dans quel ordre faut-il faire les trois opérations ?

Corrigé


import java.util.ArrayList;
import java.util.List;

public class Exo4Nettoyer {
    public static void main(String[] args) {
        List<String> saisies = new ArrayList<>(List.of("  paris", "", "LYON ", "   ", "nAntes"));
        saisies.replaceAll(String::trim);                          // retire les blancs autour
        saisies.removeIf(String::isEmpty);                          // retire les chaînes vides
        saisies.replaceAll(s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase());
        System.out.println(saisies);
    }
}

[Paris, Lyon, Nantes]

L'ordre compte. Il faut retirer les blancs avant de supprimer les chaînes vides : " " n'est pas vide, mais le devient après trim. Et il faut supprimer les chaînes vides avant de mettre une majuscule : "".substring(0, 1) lèverait une StringIndexOutOfBoundsException.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →