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