在java中检查“荷兰”邮政编码的方法

Ron*_*zen 1 java methods boolean

我正在尝试在 Java 中创建一个方法来验证荷兰邮政编码。荷兰邮政编码由 6 个字符组成,其中包含 4 个数字(前 4 个字符)和 2 个字母(后 2 个字符),例如 1010AB。

我做了一个布尔值,如果邮政编码不在标准范围内,则返回 false,如果是,则返回 true。我一直在检查最后两个字母。

我已经为前 4 个数字创建了一个循环,但我不知道如何从这里进一步检查字母。

我的java方法:

public static boolean checkPostcode(String postCode) {


        boolean value = false;
        if (postCode.length() == lengthPost) {
            for (int i = 0; i < postCode.length(); i++) {
                if (i <= 4) {
                    if (Character.isDigit(postCode.charAt(i)) {
                        value = true;

                 else{
                            if (Character.isLetter(postCode.charAt(i))) {
                                value = true;
                            }
                        }
                    }
                }
            }

        }
     return value;
    }
Run Code Online (Sandbox Code Playgroud)

你面包车忽略最后一个 else,因为那是我卡住的地方....

如果有人可以帮助我,那就太好了!!

提前致谢

Arv*_*ash 6

使用正则表达式解决:

public class Main {
    public static void main(String[] args) {
        // Tests
        System.out.println(checkPostcode("1234AB"));
        System.out.println(checkPostcode("5678MN"));
        System.out.println(checkPostcode("0123AB"));
        System.out.println(checkPostcode("1023AB"));
        System.out.println(checkPostcode("1230AB"));
        System.out.println(checkPostcode("AB1234"));
        System.out.println(checkPostcode("123456"));
        System.out.println(checkPostcode("ABCDEF"));
        System.out.println(checkPostcode("12345A"));
        System.out.println(checkPostcode("A12345"));
        System.out.println(checkPostcode("A12345B"));
        System.out.println(checkPostcode("1ABCDE6"));
        System.out.println(checkPostcode("1ABCD6"));
    }

    public static boolean checkPostcode(String postCode) {
        return postCode.matches("[1-9]{1}[0-9]{3}[a-zA-Z]{2}");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

true
true
false
true
true
false
false
false
false
false
false
false
false
Run Code Online (Sandbox Code Playgroud)

非正则表达式解决方案:

public static boolean checkPostcode(String postCode) {
    if (postCode.length() != lengthPost || postCode.charAt(0) == '0') {
        return false;
    }
    if (postCode.length() == lengthPost) {
        for (int i = 0; i < postCode.length(); i++) {
            if (i < 4 && Character.isLetter(postCode.charAt(i))) {
                return false;
            }
            if (i > 3 && Character.isDigit(postCode.charAt(i))) {
                return false;
            }
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)