最近因为做车贷以及车险的项目接触到了车架号VIN这一个对象,在关于车辆的开发代码中,经常有要求对车架号是否合法进行判断,此前有在网上参考其他博客,只看到C++写的识别,故特地写一篇Java识别代码笔记,以免自己忘记。
在此先贴上C语言所写的博客地址:http://blog.csdn.net/tutb12345/article/details/61415148
有关车辆VIN的介绍,以及车架号的加权算法可参考该博客。
分隔线
分隔线
首先,在工具类中,定义固定的数组。
/**车架号地区代码数组*/
public static final String areaArray[] = new String[]{"1", "2", "3", "6", "9", "J", "K", "L", "R", "S", "T", "V", "W", "Y", "Z", "G"};
/**车架号中可能出现的字符数组*/
public static final String charArray[] = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "V", "W", "X", "Y"};
/**车架号校验位计算数组*/
public static final Object[][] KVMACTHUP = new Object[][]{ {'A', 1}, {'B', 2}, {'C', 3}, {'D', 4}, {'E', 5}, {'F', 6},{'G', 7}, {'H