Java 如何计算IBAN国家支票数字?

Java 如何计算IBAN国家支票数字?,java,check-digit,iban,Java,Check Digit,Iban,接下来,我将开发一个Java应用程序,用于计算和验证来自不同国家的IBAN。有些BBAN有一个国家支票数字,但我找不到任何关于如何计算的文档。我在哪里可以找到“国家支票数字”的算法? 我对“iban校验位”不感兴趣,但对与国家相关的校验位感兴趣。国家校验位在国家标准中定义,每个国家有不同的标准。一些国家有一个支票数字,其他国家有两个,但其他国家没有 例如,西班牙银行账号有两个支票数字。第一种是基于4位数的分行和办公室代码,第二种是根据10位数的账号计算得出的。例如,您可以在任何与银行业务相关的文

接下来,我将开发一个Java应用程序,用于计算和验证来自不同国家的IBAN。有些BBAN有一个国家支票数字,但我找不到任何关于如何计算的文档。我在哪里可以找到“国家支票数字”的算法?
我对“iban校验位”不感兴趣,但对与国家相关的校验位感兴趣。

国家校验位在国家标准中定义,每个国家有不同的标准。一些国家有一个支票数字,其他国家有两个,但其他国家没有

例如,西班牙银行账号有两个支票数字。第一种是基于4位数的分行和办公室代码,第二种是根据10位数的账号计算得出的。例如,您可以在任何与银行业务相关的文档中找到它,但基本上是将每个数字乘以2 mod 11的幂,将所得数字相加,然后将其余数除以11。示例代码用于验证和计算校验位


其他国家使用其他方法,例如。

当您需要构造/解构西班牙Iban时,西班牙是一个有两组校验位的国家,按以下顺序计算:45、91

ES91 2100 0418 4502 0005 1332

国家代码(2个字符“ES”) 检查数字(2个字符) 银行标识符(4个字符) 分支代码(4个字符) 校验位(2个字符) 帐号(10个字符)

分步指导 1.首先,将ES更改为其等效数字E=14,S=28,并将该值附加为00,因此为142800 现在,要获取第一组iban校验位,请将帐号添加到步骤1中的号码:0200051332142800


  • 现在mod 97该值,然后从98中减去余数。0200005133142800 mod 97=53,98-53=45可能在这里?嗯,我说的是“国家支票数字”,而不是“iban支票数字”。谢谢你的回答,但我已经找到了关于意大利和西班牙国家支票数字的文档。也许我会在像ABI(IT)或AEB(ES)这样的机构网站上搜索文档,但我必须先找到每个国家的这些法规。听起来你已经找到了答案。我找到了我的问题;)您从何处获得“数值等价物E=14,S=28”。?您无法使用java函数获取数值,例如Character.getNumericValue('a')->10@Praditha,E=14,因为字符“E'-55=14”的ASCII值此答案计算IBAN校验位,而不是国家BRAN校验位。BRAN是整个IBAN的一个组成部分,该问题具体涉及该组成部分,其结构由国家标准定义,不在IBAN标准的范围内。