Limpieza de datos en Java
Dennis Lee
Software Engineer
| Título | Fecha de publicación | Valoración | Nº reseñas | Precio |
|---|---|---|---|---|
| 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 no tiene reviewCount, rating ni price BookSales book = new BookSales("Clean Code", LocalDate.of(2008, 8, 1), null, null, null)// rating es null, así que lanzará NullPointerException int rating = book.rating();
Exception in thread "main" java.lang.NullPointerException
// Importar Objects
import java.util.Objects;
// Usar .isNull()
if (Objects.isNull(book.rating())) {
System.out.println("Falta la valoración");
}
Missing rating
import java.util.Optional;
// Usa Optional.ofNullable para números
double rating = Optional.ofNullable(book.rating()).orElse(0.0);
System.out.println("Book rating: " + rating);
Book rating: 0.0
// Usa Objects.toString para strings
String displayTitle = Objects.toString(book.title(), "[No Title]");
System.out.println(displayTitle);
Book title: [No Title]
import org.apache.commons.lang3.StringUtils; // Utilidad para strings
// falta el título del libro BookSales book = new BookSales(" ", LocalDate.of(2019, 9, 13), 2521, 4.5, 38.00)if StringUtils.isBlank(book.title()) { System.out.println("No válido: título vacío"); }
Invalid - empty title
// priceText está en blanco
String priceText = " ";
// Comprueba blancos antes de convertir a número
if StringUtils.isBlank(priceText) {
System.out.println("Precio no válido: blanco detectado");
}
Invalid price: blank detected
java.util.Objects y java.util.OptionalNullPointerException comprobando null antes de usarObjects.isNull() para detectar nullOptional.ofNullable() para dar valores por defectoorg.apache.commons.lang3.StringUtilsStringUtils.isBlank() para detectar "", null o espaciosLimpieza de datos en Java