Nettoyer des données en Java
Dennis Lee
Software Engineer
| Nom du produit | Catégorie | Statut | Date de réception | Quantité |
|---|---|---|---|---|
| Eggplant | Fruits et légumes | Arrêté | 01/03/25 | 46 |
| VEGETABLE OIL | Huiles et graisses | En rupture | 01/04/25 | 51 |
| Cheese | Produits laitiers | Actif | 01/06/25 | 78 |
| Fresh (Organic) *Carrots* | Fruits et légumes | Arrêté | 01/05/25 | 51 |
| Bell Pepper Fresh | Fruits et légumes | Actif | 02/05/25 | 67 |
String[] messyProducts = {
"Eggplant ", // Espace en trop à la fin
"VEGETABLE OIL", // Casse incohérente
"Fresh (Organic) *Carrots*", // Caractères spéciaux
"Bell Pepper Fresh", // Espaces en trop entre les mots
};
String[] products = {"Eggplant ", " Vegetable Oil", " Cheese "};
for (String product : products) {
String cleaned = product.trim(); // Supprime les espaces en début/fin
System.out.println(cleaned);
}
Eggplant
Vegetable Oil
Cheese
List<String> products = Arrays.asList("Eggplant", "VEGETABLE OIL", "cheese");products.stream().map(String::toLowerCase) // Tout passer en minuscules.forEach(System.out::println); // Afficher chaque produit
eggplant
vegetable oil
cheese
[^a-zA-Z\\s] : trouve tout caractère qui n’est pas une lettre ou un espace// Ce motif correspond à tout caractère QUI N’EST PAS :
[ // Début d’un ensemble de caractères
^ // Négation — tout ce qui n’est pas dans cet ensemble
a-z // toute lettre minuscule
A-Z // toute lettre majuscule
\\s // tout caractère d’espacement (\\ supplémentaire pour que Java interprète \\s)
] // Fin de l’ensemble
String dirtyName = "Fresh (Organic) *Carrots*"; // Caractères spéciaux : (, ), *String cleaned = dirtyName.replaceAll("[^a-zA-Z\\s]", ""); // Supprimer les non‑lettresSystem.out.println(cleaned); // Sortie : "Fresh Organic Carrots"
Fresh Organic Carrots
import java.util.regex.Pattern;
Pattern pattern = Pattern.compile("\\s+"); // Correspond à plusieurs espacesString messyProduct = "Bell Pepper Fresh"; // Contient des espaces en trop // Remplacer les espaces multiples par un seul String cleanedProduct = pattern.matcher(messyProduct).replaceAll(" ");System.out.println(cleanedProduct);
Bell Pepper Fresh
List<String> messyProducts = Arrays.asList(
"Eggplant ", "VEGETABLE OIL",
"Fresh (Organic) *Carrots*", "Bell Pepper Fresh"
); // Noms produits extraits de notre jeu de données d’inventaire
messyProducts.stream()
.map(s -> s.trim() // Corriger espaces externes
.replaceAll("[^a-zA-Z\\s]", "") // Supprimer caractères spéciaux
.replaceAll("\\s+", " ") // Corriger espaces internes
.toLowerCase()) // Standardiser la casse
.forEach(System.out::println);
eggplant
vegetable oil
fresh organic carrots
bell pepper fresh
Nettoyer des données en Java