EAN-13条码原理及JAVA校验代码

日期:2014-09-04 16:22:32

留言:0

分类:学习记录

标签: Java

如条码:6 901126 010819

最后1位是前12位的校验码,算法如下:

1)将前12位的基数位相加,得到a,a=6+0+1+6+1+8=22;

2)将前12位的偶数位相加,得到b,b=9+1+2+0+0+1=13;

3)(a+b*3)%10=c,c=(22+13*3)%10=1;

4)(10-d)%10=d,最后得到校验码为(10-1)%10=9。

EAN-13条码java代码演示

import java.util.Scanner;
public class Ean13Demo {
 public static void main(String[] args) {
  Scanner scn = new Scanner(System.in);
  System.out.print("请输入需要校验的条码:");
  String code = scn.nextLine();
  if( checkEAN13(code) ) {
   System.out.println("条码合法");
  } else {
   System.out.println("条码非法");
  }
 }
 public static boolean checkEAN13(String code) {
  if (code == null || code.length() != 13)
   return false;
  int a = 0, b = 0, c = 0, d = 0;
  for (int i = 0; i < 12; i += 2) {
   a += (code.charAt(i) - '0');
   b += (code.charAt(i + 1) - '0');
  }
  c = (a + b*3) % 10;
  d = (10 - c) % 10;
  return (code.charAt(12)-'0')==d;
 }
}
给我留言
留言表
ZengDongwu
Hi ~ 当前还没有人留言,欢迎您给我留言 ^_^