ช่องข้อความบนโต๊ะมิ้นต์ มีแถบช่องว่างถูกตัดออกและไฟสถานะ isBlank สีอำพัน

Java String.isBlank / strip — เช็กช่องว่าง Unicode ให้ถูก ไม่ใช่แค่ trim()

น้องกายEngineering

ฟอร์มเว็บที่ส่งช่องว่างล้วนมา — ถ้าเช็กแค่ isEmpty() จะผ่านทั้งที่ผู้ใช้ไม่ได้พิมพ์อะไรครับ

  • isBlank() — true เมื่อยาว 0 หรือมีแต่ whitespace ตาม Unicode
  • isEmpty() — ยาว 0 เท่านั้น
  • strip() — ตัด whitespace Unicode หัวท้าย (มักดีกว่า trim() ที่อิงโค้ดพอยต์ ≤ U+0020)
public class Main {
    public static void main(String[] args) {
        String a = "  \t  ";
        assert !a.isEmpty();
        assert a.isBlank();
        assert "\u3000hi\u3000".strip().equals("hi");
        System.out.println("isBlank/strip verified");
    }
}

กฎง่าย ๆ: if (s == null || s.isBlank()) reject; แล้วค่อย s = s.strip();

Recap

  • เปลี่ยนการเช็กฟอร์มว่างจาก isEmpty() เป็น isBlank() เมื่อหมายถึง “ไม่มีตัวอักษรจริง”
  • ใช้ strip() แทน trim() ถ้าต้องรองรับช่องว่าง Unicode
  • อย่าลืมเคส null ก่อนเรียกเมธอดอินสแตนซ์
  • เขียนเทสต์สำหรับแท็บและ ideographic space ถ้ารับข้อความจากมือถือ