如何使用Apache IBANCheckDigit检查IBAN号码?

时间:2013-12-04 12:36:52

标签: java android apache validation iban

在我的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吗?欢迎任何提示!

2 个答案:

答案 0 :(得分:6)

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

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

calculate方法会计算校验位数,如果您还不知道它们。

答案 1 :(得分: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>