美文网首页
JAVA code128校验位码计算

JAVA code128校验位码计算

作者: 皮皮铭 | 来源:发表于2022-05-23 16:29 被阅读0次

code128校验位码计算方式:
1,從右到左,從倒數第二位4的偶數位相加
2,將第一步結果乘以3
3,從右到左,由倒數第三位0的奇數位相加
4,第二步結果加上第三步結果
5,用"大於"或"等於" 108(D的結果)且為10的最小整數倍的數減去108(D的結果)
6,校驗碼乘以1

代码

 public static Integer getCheckSum(String code) {
        if (code == null || code.trim().length() < 3) {
            return null;
        }
        String sortStr = new StringBuffer(code).reverse().toString();
        int evenNumber = 0;
        int oddNumber = 0;
        for (int i = 1; i <= sortStr.length(); i++) {
            if (i % 2 == 0) {
                //1,從右到左,從倒數第二位4的偶數位相加
                char c = sortStr.charAt(i - 1);
                String str = String.valueOf(c);
                evenNumber = evenNumber + Integer.parseInt(str);
            } else if (i >= 3 && i % 2 != 0) {
                //3,從右到左,由倒數第三位0的奇數位相加
                char c = sortStr.charAt(i - 1);
                String str = String.valueOf(c);
                oddNumber = oddNumber + Integer.parseInt(str);
            }
        }
        //2,將第一步結果乘以3
        evenNumber = evenNumber * 3;
        //4,第二步結果加上第三步結果
        int sumNumber = evenNumber + oddNumber;
        //5,用"大於"或"等於" 108(D的結果)且為10的最小整數倍的數減去108(D的結果)
        //6,校驗碼乘以1
//        i = i * 1;
        return 10 - (sumNumber % 10);
    }

相关文章

网友评论

      本文标题:JAVA code128校验位码计算

      本文链接:https://www.haomeiwen.com/subject/chgrprtx.html