EAN13条形码校验公式及代码实现

本文介绍了EAN13条形码的校验位计算步骤,包括将数字按奇偶位分组求和,再进行特定计算确保总和能被10整除。同时,提供了一段简单的代码实现,帮助初学者理解该过程。

计算校验位的步骤如下:

  1. 将最右边一个数位作为“奇数”位,从右向左为每个字符指定奇数/偶数位。

  2. 对所有奇数位上的数值求和,将结构乘以3。

  3. 对所有偶数位上的数值求和。

  4. 对第2步和第3步计算的结果求和。

  5. 校验位的数字加上用第4步计算的总和数应该能够被10整除。

  6. 如果第4步计算的总和数能够被10整除,校验位就是“0”(不是10)

简单来说,EAN13码前12位是主码,最后一位是检验码,通过上述的运算得到的结果跟最后的检验码相同则说明检验成功。也就是针对前12位主码的运算。

代码如下:
初学者,代码很粗糙,随便看看就好。

import java.util.Scanner;

public class ForDemo {

    public static void main(String[] args) {
//      String str ="6923790799135";
        System.out.println("请输入一个13位的数字");
        Scanner con = new Scanner(System.in);
        String str = con.nextLine();
        int sum = 0;
        for(int i =1;i<12;i+=2){
            sum+=(str.charAt(i)-'0');
        }
//      System.out.println(sum);
//      int sum1 =sum*3;
        int sum2 =0;
        for(int i = 0;i<12;i+=2){
            sum2 += (str.charAt(i)-'0');
        }
//      System.out.println(sum2);
        int count =sum*3+sum2;
        System.out.println(count);
        if(10-count%10==(str.charAt(12)-'0')){
            System.out.println("扫码成功");
        }else{
            System.out.println("重新扫码");
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值