求Java大神给个代码!计算验证条形码

计算验证条形码Ean13Barcode.javaEan-13码规则:第十三位数字是前十二位数字经过计算得到的校验符。例如:690123456789计算其校验符的过程为:前... 计算验证条形码 Ean13Barcode.java
Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验符。
例如:690123456789
计算其校验符的过程为:   
前12位的奇数位的和:6 + 0 + 2 + 4 + 6 + 8 = 26  
前12位的偶数位和:9 + 1 + 3 + 5 + 7 + 9 = 34  
将奇数和与偶数和的三倍相加:26 + 34 * 3 = 128   
取结果的个位数:128的个位数为8   
用10减去这个个位数:10 - 8 = 2   
所以校验码为2   
(注:如果取结果的个位数为0,那么校验码不是为10 (10 - 0 = 10),而是0。)
实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。
例:
/**
* 生成EAN-13 验证码
* 输入: 692223361219
* 输出: 6922233612192
*/
展开
 我来答
zhr290304104
2013-05-26 · TA获得超过262个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:297万
展开全部
public class Ean13Barcode {

private String code;

public Ean13Barcode(String code) {
super();
this.code = code;
}

public String encode() {
if (null == code) {
return "";
}
char[] codes = code.toCharArray();
int sum = 0;
for (int i = 0; i < codes.length; i++) {
int num = codes[i] - '0';
if (isEven(num)) {
sum += num;
} else {
sum += num * 3;
}
}
int x = sum % 10;
return code + (x == 0 ? 0 : 10 - x);
}

private boolean isEven(int x) {
return x % 2 == 0;
}

public static void main(String[] args) {
System.out.println(new Ean13Barcode("692223361219").encode());
}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式