如何使用 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 号码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用APACHE在windows上>?

如何在 Apache 中使用 Django?

如何开启apache虚拟目录反向代理

如何使用命令行卸载 Apache

如何使用 apache 会话和基本身份验证(在 apache2.4 中)?

Apache Zeppelin - 如何在 Apache Zeppelin 中使用 Helium 框架