如何生成满足校验码校验的EAN13条码?

Mik*_*iki 0 java barcode zxing

我正在使用 zxing 生成条形码。我想在其中存储增量数字,并且想避免校验和错误。我怎样才能避免它?正确的做法是什么?

And*_*lov 5

我用kotlin编写了生成方法,可能对某些人有帮助1

fun generateBarcode(): String {
    var result = ""
    for (i in 0..11) {
        result += (0..9).random()
    }

    return result+getCheckSum(result)
}

fun getCheckSum(code:String): String {
    var odd = 0
    var even = 0
    for (i in 0..code.length-1) {
        val index = i+1
        if (index.isOdd())
            odd+=code[i].toString().toInt()
        else
            even+=code[i].toString().toInt()
    }
    return ((10-((odd+even*3)%10))%10).toString()
}
Run Code Online (Sandbox Code Playgroud)

只需调用generateBarcode()以字符串形式获取 EAN13 条形码