如何使用 Apache IBANCheckDigit 检查 IBAN 号码?
Posted
技术标签:
【中文标题】如何使用 Apache IBANCheckDigit 检查 IBAN 号码?【英文标题】:How to check an IBAN number using the Apache IBANCheckDigit? 【发布时间】:2013-12-20 22:51:31 【问题描述】:在我的 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 吗?欢迎任何提示!
【问题讨论】:
【参考方案1】: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>
【讨论】:
【参考方案2】:要检查 IBAN 校验位是否有效,您应该只使用 isValid
方法:
Boolean b = a.isValid("MY_IBAN_NUMBER_HERE");
Log.e("isValid: ", b.toString());
如果您还不知道校验位,calculate
方法会计算校验位。
【讨论】:
以上是关于如何使用 Apache IBANCheckDigit 检查 IBAN 号码?的主要内容,如果未能解决你的问题,请参考以下文章