Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Kiểm tra chuỗi có phải giá trị boolean (true/false) trong Java

Java có Boolean.parseBoolean() và Boolean.valueOf() nhưng chúng không validate – trả về false cho bất kỳ chuỗi nào khác "true" (bỏ qua hoa/thường).

Hành vi của parseBoolean/valueOf


Boolean.parseBoolean("true")   // true
Boolean.parseBoolean("false")  // false
Boolean.parseBoolean("TRUE")   // true
Boolean.parseBoolean("yes")    // false ⚠️ không ném exception
Boolean.parseBoolean("")       // false
Boolean.parseBoolean(null)     // false

Cách validate đúng: So sánh chính xác "true" hoặc "false"

Cách 1: equalsIgnoreCase (đơn giản)


public static boolean isBooleanString(String str) {
    return str != null && (str.equalsIgnoreCase("true") || str.equalsIgnoreCase("false"));
}

Cách 2: Regular Expression


import java.util.regex.*;

public static boolean isBooleanStringRegex(String str) {
    return str != null && Pattern.matches("(?i)^(true|false)$", str);
    // (?i) = CASE_INSENSITIVE, ^$ = khớp toàn chuỗi
}

Ví dụ tương tác


import java.util.Scanner;

public class BooleanValidator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Nhập chuỗi: ");
        String input = sc.nextLine().trim();
        
        if (isBooleanString(input)) {
            System.out.println("✅ Là boolean type: " + Boolean.parseBoolean(input));
        } else {
            System.out.println("❌ KHÔNG phải boolean type");
        }
    }
    
    static boolean isBooleanString(String s) {
        return s != null && (s.equalsIgnoreCase("true") || s.equalsIgnoreCase("false"));
    }
}

Kết quả


Nhập chuỗi: true
✅ Là boolean type: true

Nhập chuỗi: FALSE
✅ Là boolean type: false

Nhập chuỗi: hello
❌ KHÔNG phải boolean type

Tóm tắt: parseBoolean dùng để chuyển đổi, không dùng để validate. Validate bằng so sánh chuỗi hoặc regex.