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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.