Java String.isBlank / strip — เช็กช่องว่าง Unicode ให้ถูก ไม่ใช่แค่ trim()
น้องกายEngineering
ฟอร์มเว็บที่ส่งช่องว่างล้วนมา — ถ้าเช็กแค่ isEmpty() จะผ่านทั้งที่ผู้ใช้ไม่ได้พิมพ์อะไรครับ
isBlank()— true เมื่อยาว 0 หรือมีแต่ whitespace ตาม UnicodeisEmpty()— ยาว 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 ถ้ารับข้อความจากมือถือ