Detección de null

Limpieza de datos en Java

Dennis Lee

Software Engineer

¿Dónde están los datos?

  • Datos faltantes: null y blancos
    • Null: Datos no disponibles
    • Blancos: Espacios en blanco, probables errores

 

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]
Limpieza de datos en Java

Errores por valores 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
Limpieza de datos en Java

Comprobar valores null

// Importar Objects
import java.util.Objects;
// Usar .isNull()
if (Objects.isNull(book.rating())) {
    System.out.println("Falta la valoración");
}
Missing rating
Limpieza de datos en Java

Dar valores por defecto a null

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]
Limpieza de datos en Java

Comprobar strings en blanco/null

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
Limpieza de datos en Java

Comprobar números en blanco

// 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
Limpieza de datos en Java

Resumen: detectar null y blancos

  • Los valores null indican datos faltantes o indefinidos
    • Imports clave: java.util.Objects y java.util.Optional
    • Evita NullPointerException comprobando null antes de usar
    • Usa Objects.isNull() para detectar null
    • Usa Optional.ofNullable() para dar valores por defecto
  • Los blancos indican texto vacío o solo espacios
    • Import clave: org.apache.commons.lang3.StringUtils
    • Usa StringUtils.isBlank() para detectar "", null o espacios
    • Común en errores de entrada de datos
Limpieza de datos en Java

¡Vamos a practicar!

Limpieza de datos en Java

Preparing Video For Download...