การตรวจจับค่า null

การทำความสะอาดข้อมูลใน Java

Dennis Lee

Software Engineer

ข้อมูลอยู่ที่ไหน?

  • ข้อมูลที่หายไป: null และ blank
    • Null: ข้อมูลที่ไม่มีอยู่
    • Blank: ช่องว่าง มักเกิดจากข้อผิดพลาด

 

Title Publish Date Rating Review Count Price
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]
การทำความสะอาดข้อมูลใน Java

ข้อผิดพลาดจากค่า null

// book is missing reviewCount, rating, and price
BookSales book = new BookSales("Clean Code", LocalDate.of(2008, 8, 1),
                               null, null, null)


// rating is null, so the code will throw a NullPointerException int rating = book.rating();
Exception in thread "main" java.lang.NullPointerException
การทำความสะอาดข้อมูลใน Java

การตรวจสอบค่า null

// Import Objects
import java.util.Objects;
// Use .isNull()
if (Objects.isNull(book.rating())) {
    System.out.println("Missing rating");
}
Missing rating
การทำความสะอาดข้อมูลใน Java

การกำหนดค่าดีฟอลต์แทนค่า null

import java.util.Optional;
// Use Optional.ofNullable for numbers
double rating = Optional.ofNullable(book.rating()).orElse(0.0);
System.out.println("Book rating: " + rating);
Book rating: 0.0
// Use Objects.toString for strings
String displayTitle = Objects.toString(book.title(), "[No Title]");
System.out.println(displayTitle);
Book title: [No Title]
การทำความสะอาดข้อมูลใน Java

การตรวจสอบสตริง blank/null

import org.apache.commons.lang3.StringUtils;  // Utility for string operations
// book is missing a title
BookSales book = new BookSales(" ", LocalDate.of(2019, 9, 13), 2521, 4.5, 38.00)


if StringUtils.isBlank(book.title()) { System.out.println("Invalid - empty title"); }
Invalid - empty title
การทำความสะอาดข้อมูลใน Java

การตรวจสอบตัวเลขที่เป็น blank

// priceText is blank
String priceText = " ";

// Check for blank values before converting to a number
if StringUtils.isBlank(priceText) {
    System.out.println("Invalid price: blank detected");
}
Invalid price: blank detected
การทำความสะอาดข้อมูลใน Java

สรุป: การตรวจจับค่า null และ blank

  • ค่า null หมายถึงข้อมูลที่หายไปหรือไม่ได้กำหนดค่า
    • ไลบรารีหลัก: java.util.Objects และ java.util.Optional
    • ตรวจสอบค่า null ก่อนใช้งานเพื่อป้องกัน NullPointerException
    • ใช้ Objects.isNull() ตรวจสอบค่า null
    • ใช้ Optional.ofNullable() กำหนดค่าดีฟอลต์
  • ค่า blank หมายถึงข้อความว่างหรือมีแต่ช่องว่าง
    • ไลบรารีหลัก: org.apache.commons.lang3.StringUtils
    • ใช้ StringUtils.isBlank() ตรวจจับ "", null หรือช่องว่าง
    • พบบ่อยในข้อผิดพลาดจากการป้อนข้อมูล
การทำความสะอาดข้อมูลใน Java

มาฝึกกันเถอะ!

การทำความสะอาดข้อมูลใน Java

Preparing Video For Download...