Nettoyer des données en Java
Dennis Lee
Software Engineer
| Titre | Date de publication | Note | Nb d’avis | Prix |
|---|---|---|---|---|
| Python Crash Course | 1/10/23 | 4.8 | 165 | $30.61 |
| 9/13/19 | 4.8 | 2,521 | $38.00 | |
| Clean Code | 8/1/08 | [null] | [null] | [null] |
// book n’a pas reviewCount, rating et price BookSales book = new BookSales("Clean Code", LocalDate.of(2008, 8, 1), null, null, null)// rating est null, donc le code va lever une NullPointerException int rating = book.rating();
Exception in thread "main" java.lang.NullPointerException
// Importer Objects
import java.util.Objects;
// Utiliser .isNull()
if (Objects.isNull(book.rating())) {
System.out.println("Note manquante");
}
Note manquante
import java.util.Optional;
// Utiliser Optional.ofNullable pour les nombres
double rating = Optional.ofNullable(book.rating()).orElse(0.0);
System.out.println("Book rating: " + rating);
Book rating: 0.0
// Utiliser Objects.toString pour les chaînes
String displayTitle = Objects.toString(book.title(), "[No Title]");
System.out.println(displayTitle);
Book title: [No Title]
import org.apache.commons.lang3.StringUtils; // Utilitaire pour opérations sur chaînes
// book n’a pas de titre BookSales book = new BookSales(" ", LocalDate.of(2019, 9, 13), 2521, 4.5, 38.00)if StringUtils.isBlank(book.title()) { System.out.println("Invalide - titre vide"); }
Invalide - titre vide
// priceText est vide
String priceText = " ";
// Vérifier les vides avant de convertir en nombre
if StringUtils.isBlank(priceText) {
System.out.println("Prix invalide : vide détecté");
}
Prix invalide : vide détecté
java.util.Objects et java.util.OptionalNullPointerException en testant null avant usageObjects.isNull() pour tester nullOptional.ofNullable() pour fournir des valeurs par défautorg.apache.commons.lang3.StringUtilsStringUtils.isBlank() pour détecter "", null ou espacesNettoyer des données en Java