charAt(0) 给出意外的输出

charAt(0) gives unexpected output

正在为Java做一些暑假练习,我正在尝试验证社会保障(针对我的国家)

charAt(0) 不符合我的要求 给定社会保障“300198”,此时它打印“错误 1”。

public void authenticateCpr(Member member){
        if (member.getCpr().charAt(0) > 3) {
            System.out.println("Error 1");
        }
        if (member.getCpr().charAt(0) == 3 && member.getCpr().charAt(1) > 9){
            System.out.println("Error 2");
        }
    }

我错过了什么? 快乐的夏天 亲切的问候

String.charAt(0) returns '3' 其 ASCII 码等于 51。你应该这样写

public void authenticateCpr(Member member){
        if (member.getCpr().charAt(0) > '3') {
            System.out.println("Error 1");
        }
        if (member.getCpr().charAt(0) == '3' && member.getCpr().charAt(1) > '9'){
            System.out.println("Error 2");
        }
    }