书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。

2年前 (2019-12-27) 353次浏览 已收录 6个评论

2004年起,国际ISBN中心出版了《13位国际标准书号指南》。
原有10位书号前加978作为商品分类标识;校验规则也改变。
校验位的加权算法与10位ISBN的算法不同,具体算法是:
用1分别乘ISBN的前12位中的奇数位(从左边开始数起),用3乘以偶数位,乘积之和以10为模,
10与模值的差值再对10取模(即取个位的数字)即可得到校验位的值,其值范围应该为0~9。

package nine;
 
public class shyz {
	static boolean f(String s){
		int k=1;
		int sum = 0;
		for(int i=0; i<s.length(); i++){
			char c = s.charAt(i);
			if(c=='-' || c==' ') continue;
			sum +=Integer.parseInt(String.valueOf(c))*(k % 2 == 0?3:1);//填空
			k++;
			if(k>12) break; 
		}
 
		return s.charAt(s.length()-1)-'0' == (10-sum % 10)%10;
	}
 
	public static void main(String[] args){
		System.out.println(f("978-7-301-04815-3"));
		System.out.println(f("978-7-115-38821-6"));
	}
}
 
 
 

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。
喜欢 (0)

您必须 登录 才能发表评论!

(6)个小伙伴在吐槽
  1. 挺明白的
    笨鸟先飞2020-03-27 13:03
  2. 还可以
    努力2020-03-27 13:28
  3. 我也是小白以后多多交流
    奋斗2020-03-27 13:54
  4. 记住这个网站了
    奋斗2020-03-28 17:09
  5. 我也是学计算机的
    笔记本2020-03-28 18:01
  6. 渣渣混2020-05-26 10:04