4

在我的 Android 应用程序中,我正在尝试检查 IBAN 银行帐号是否有效。据说这可以使用Apache IBANCheckDigit来完成。我现在尝试这样做:

IBANCheckDigit a = new IBANCheckDigit();
try {
    String checkDigit = a.calculate("MY_IBAN_NUMBER_HERE");
    Boolean b = a.isValid(checkDigit);
    Log.e("isValid: ", b.toString());
} catch (CheckDigitException e) {
    Log.e(this, "THIS IS AN ERROR");
}

然而,这总是打印false。即使我插入我自己的(正确的)IBAN 号码,它也会给出一个false.

有人知道如何使用这个 Apache IBANCheckDigit 吗?欢迎任何提示!

4

2 回答 2

6

要检查 IBAN 校验位是否有效,您应该isValid只使用以下方法:

Boolean b = a.isValid("MY_IBAN_NUMBER_HERE");
Log.e("isValid: ", b.toString());

calculate如果您还不知道校验位,该方法将计算校验位。

于 2013-12-04T12:43:02.240 回答
2

iban4j 可能是 IBAN 验证的不错选择,它不仅验证校验位,还验证 IBAN 长度、结构、字符类型等......

主页:https ://github.com/arturmkrtchyan/iban4j

代码示例:

try {
    IbanUtil.validate("AT611904300234573201");
    // valid
} catch (IbanFormatException e) {
    // invalid
}

Maven依赖:

<dependency>
     <groupId>org.iban4j</groupId>
     <artifactId>iban4j</artifactId>
     <version>1.0.0</version>
</dependency>
于 2013-12-15T17:20:21.210 回答