【问题标题】:How to check an IBAN number using the Apache IBANCheckDigit?如何使用 Apache IBANCheckDigit 检查 IBAN 号码?
【发布时间】: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 吗?欢迎任何提示!

【问题讨论】:

    标签: java android apache validation iban


    【解决方案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 方法会计算校验位。

      【讨论】:

        猜你喜欢
        • 2019-07-19
        • 2019-06-11
        • 2019-02-11
        • 2014-03-22
        • 1970-01-01
        • 2015-05-30
        • 2013-08-14
        • 2019-12-05
        • 2014-12-07
        相关资源
        最近更新 更多