码迷,mamicode.com
首页 > 其他好文 > 详细

barcode EAN13 12位计算出最后一位

时间:2021-06-02 18:53:48      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:pointer   poi   point   偶数   +=   eve   null   ++   event   

    /**
     * 计算barcode最后一位
     * @param code 12位的barcode
     * @return
     */
    public static String padBarcode(String code){
        if( null == code || code.length() != 12 ){
            throw new NullPointerException("code 的位数不对!");
        }
        //补上位数 code
        String code_ = code+"0";
        int totalEvent = 0;
        int totalCardinal = 0;
        
        char[] resolve = code_.toCharArray();
        for( int i = 1; i <= resolve.length; i++ )
        {
            int temp = Integer.parseInt((resolve[i-1])+"");
            if( i % 2 == 0 ){
                totalEvent += temp;//偶数和
            }else{
                totalCardinal += temp;//基数和
            } 
        }
        int x = ( totalEvent * 3 ) + totalCardinal;
        
        //取x的值   10最小整数倍的数
        int all = x; 
        if( x % 10 != 0 ){
            all = ( (x / 10 +1) * 10);
        }
        return code+(all-x);
    }

 

barcode EAN13 12位计算出最后一位

标签:pointer   poi   point   偶数   +=   eve   null   ++   event   

原文地址:https://www.cnblogs.com/Mr-Y1907/p/14831877.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!