Java JAN/EANコードのチェックディジットを計算する




昔、バーコードバトラーというおもちゃがありました。
そこら辺にあるバーコードをスキャンすると、戦闘力が出て、友達が持ってるバーコードと戦うことができます。
とにかく片っ端からスキャンしていって、高い戦闘力をもつバーコードをかき集めることが重要なゲームですw
今でもあるんだろうか。。。

JAN/EANコードのチェックディジットを計算するサンプル

サンプルで3つのJANコード(JAN-13,JAN-8)を最終の1桁(チェックディジット)を除いて、チェックディジットを計算するメソッドに渡します。
渡されたコード、計算されたチェックディジット(1桁)、これを合わせて完成したコードを標準出力します。

実行結果

サンプルで渡された3つのコードそれぞれに対して、渡されたコード、計算されたチェックディジット(1桁)、これを合わせて完成したコードが標準出力されます。

サンプルの解説

多くのバーコードには、正しくスキャンができたかどうかをチェックできるように、チェックディジットが仕込まれています。
JAN/EANコードのチェックディジットは「モジュラス10/ウェイト3」という方式で計算します。

ざっくり言うと・・・、
(1) 各桁毎に1,3,1,3….を掛けたものを、全て足す。(4*1+9*3+0*1+1*3+…)
(2) (1)の結果から、下1桁を取得する。
(3) (2)の結果を、10から引くと、下1桁がチェックディジット。

詳しい計算方法が知りたい方は、以下のページを見てください。
参考:チェックデジットの計算方法(一般財団法人 流通システム開発センター)