Java 如何检查IBAN验证?

Java 如何检查IBAN验证?,java,android,banking,bank,iban,Java,Android,Banking,Bank,Iban,如何验证java中的IBAN(国际银行账号)以在Android应用程序中使用 国际银行账号是一种国际商定的跨国界识别银行账户的系统,以促进跨境交易的沟通和处理,降低转录错误的风险 private boolean有效(字符串iban){ int IBAN_MIN_SIZE=15; int IBAN_MAX_SIZE=34; 长IBAN_MAX=9999999; 长IBAN_模量=97; String trim=iban.trim(); if(trimmed.length()IBAN_MAX_SIZ

如何验证java中的IBAN(国际银行账号)以在Android应用程序中使用

国际银行账号是一种国际商定的跨国界识别银行账户的系统,以促进跨境交易的沟通和处理,降低转录错误的风险

private boolean有效(字符串iban){
int IBAN_MIN_SIZE=15;
int IBAN_MAX_SIZE=34;
长IBAN_MAX=9999999;
长IBAN_模量=97;
String trim=iban.trim();
if(trimmed.length()IBAN_MAX_SIZE){
返回false;
}
字符串重新格式化=trimmed.substring(4)+trimmed.substring(0,4);
长总计=0;
对于(int i=0;i35){
返回false;
}
总计=(charValue>9?总计*100:总计*10)+charValue;
如果(总计>IBAN_最大值){
总计=(总的IBAN_模数百分比);
}
}
返回值(总的%IBAN_模数)==1;
}

要实施这些步骤:

此外,长字符太小,无法容纳数字。你需要一个大整数

private boolean有效(字符串iban){
//删除空格
iban=iban.replace(“\\s”和“);
//全部大写
iban=iban.toUpperCase();
//检查长度-复杂,取决于国家。暂时跳过。
// https://en.wikipedia.org/wiki/International_Bank_Account_Number#Structure
//将前四个字母移到末尾
iban=iban子串(4)+iban子串(0,4);
//将字母转换成数字
字符串总数=”;
对于(int i=0;i35){
返回false;
}
总+=charValue;
}
//生成BigInteger并检查模数97是否为1
BigInteger totalInt=新的BigInteger(总计);
返回totalInt.mod(新的biginger(“97”)).equals(biginger.ONE);
}
private boolean isIbanValid(String iban) {

    int IBAN_MIN_SIZE = 15;
    int IBAN_MAX_SIZE = 34;
    long IBAN_MAX = 999999999;
    long IBAN_MODULUS = 97;

    String trimmed = iban.trim();

    if (trimmed.length() < IBAN_MIN_SIZE || trimmed.length() > IBAN_MAX_SIZE) {
        return false;
    }

    String reformat = trimmed.substring(4) + trimmed.substring(0, 4);
    long total = 0;

    for (int i = 0; i < reformat.length(); i++) {

        int charValue = Character.getNumericValue(reformat.charAt(i));

        if (charValue < 0 || charValue > 35) {
            return false;
        }

        total = (charValue > 9 ? total * 100 : total * 10) + charValue;

        if (total > IBAN_MAX) {
            total = (total % IBAN_MODULUS);
        }
    }

    return (total % IBAN_MODULUS) == 1;
}