//车辆识别号VIN中字母对应的数值
    @SuppressWarnings({ "unchecked", "rawtypes" })
public static Hashtable htbVIN(){
        Hashtable ht = new Hashtable();
        ht.put("A", 1);
        ht.put("B", 2);
        ht.put("C", 3);
        ht.put("D", 4);
        ht.put("E", 5);
        ht.put("F", 6);
        ht.put("G", 7);
        ht.put("H", 8);
        
        ht.put("J", 1);
        ht.put("K", 2);
        ht.put("L", 3);
        ht.put("M", 4);
        ht.put("N", 5);
        ht.put("P", 7);
        ht.put("R", 9);
        ht.put("S", 2);
        ht.put("T", 3);
        ht.put("U", 4);
        ht.put("V", 5);
        ht.put("W", 6);
        ht.put("X", 7);
        ht.put("Y", 8);
        ht.put("Z", 9);
        
        ht.put("1", 1);
        ht.put("2", 2);
        ht.put("3", 3);
        ht.put("4", 4);
        ht.put("5", 5);
        ht.put("6", 6);
        ht.put("7", 7);
        ht.put("8", 8);
        ht.put("9", 9);
        ht.put("0", 0);

return ht;
    }

//车辆识别号中顺序对应的加权系数
    @SuppressWarnings({ "rawtypes", "unchecked" })
public static Hashtable htbVIN_JQS(){
        Hashtable ht = new Hashtable();
        ht.put(1, 8);
        ht.put(2, 7);
        ht.put(3, 6);
        ht.put(4, 5);
        ht.put(5, 4);
        ht.put(6, 3);
        ht.put(7, 2);
        ht.put(8, 10);
        ht.put(9, 0);
        ht.put(10, 9);
        ht.put(11, 8);
        ht.put(12, 7);
        ht.put(13, 6);
        ht.put(14, 5);
        ht.put(15, 4);
        ht.put(16, 3);
        ht.put(17, 2);
        
        return ht;
    }

// IN可用字符
    public static String  sKYZF="ABCDEFGHJKLMNPRSTUVWXYZ1234567890";
    
    //检验车辆识别号
    @SuppressWarnings("rawtypes")
public static boolean getCheckCode_VIN(String sVIN){
    String sJYW = "";
    boolean bl = false;
    boolean blKYZF = false;
        if (sVIN.length() == 17){
            int iJQS=0 ,intTemp=0;
            Hashtable ht = new Hashtable();
            ht = htbVIN();
            Hashtable htZM = new Hashtable();
            htZM = htbVIN_JQS();
            if(!sVIN.startsWith("L")){
            bl = false;
            }
            try{
                for (int i = 0; i < sVIN.length(); i++){
                    if (sKYZF.contains (sVIN.substring(i, i+1))){
                        blKYZF = true;
                        int temp1 = (int)ht.get(sVIN.substring(i, i+1));
                        int temp2 = (int)htZM.get(i+1);
                        iJQS = iJQS + temp1 * temp2;
                    }else{
                        blKYZF = false;
                        break;//发现不合法字符,直接退出循环                            
                    }
                }
                if (blKYZF){
                    intTemp = iJQS % 11;
                    if (intTemp == 10)
                        sJYW = "X";
                    else
                        sJYW = intTemp+"";
                    String temp = sVIN.charAt(8)+"";
                    if (sJYW.equals(temp))
                        bl = true;
                }else{
                    bl = false;
                }
            }catch(Exception e){
                bl = false;
            }
        }
        return bl;
    }

车辆识别号(VIN)验证相关推荐

  1. [R语言]{实例}车辆车架号VIN码校验函数

    背景: 车辆识别号码(Vehicle Identification Number,简称VIN码,亦称车架号),是车辆唯一ID标识,也是保险公司用于外部数据合作的主要匹配字段. VIN码由17位字符(2 ...

  2. 车架号/VIN码识别——图像处理工具

    VIN码识别很多时候都能有到,车架号/VIN码识别软件不仅仅能帮助工作人员录入VIN码同时分析出VIN码的含义,易泊VIN码识别软件的使用在很大程度上解决了工作人员的工作量,提高了工作效率.这款软件可 ...

  3. 新能源汽车车架号VIN码查询车辆信息

    一.接口介绍 传入车辆识别码(车架号)VIN即可获取到车辆的品牌.型号.出厂日期.发动机类型.排量等车辆参数.广泛应用于购买新车.二手车交易和车辆维修领域. 二.功能体验 三.产品特点 四.API文档 ...

  4. 车架号VIN码精准查询车辆信息

    一.接口介绍 通过17位win码匹配,所有可能的车辆信息,可返回指导价.车型名称.性能和外观参数.新车价和厂家价等信息.广泛应用于保险定损.汽车4S店.交警系统.购买配件.查看配件装配图和车辆维修领域 ...

  5. 地磅系统——车辆识别系统的自动化管理

    1.车辆识别系统 经常过磅的车辆发放固定标签卡,不是经常过磅的发放临时标签卡:标签卡中写入详细的车辆信息(比如:车牌号.货物来源.货物料去向.运输单位名称等). 临时车辆称重采用人工称重方式. 持有标 ...

  6. 新能源汽车,车架号VIN码查询接口

    一.接口介绍 传入车辆识别码(车架号)VIN即可获取到车辆的品牌.型号.出厂日期.发动机类型.排量等车辆参数.广泛应用于购买新车.二手车交易和车辆维修领域. 二.功能体验 如何进行简单的效果查看? 1 ...

  7. vin接口车架号vin查询车型

    车架号vin接口查询,接口稳定高效 请求url:http://118.31.113.49/api/vin/v2/index?key=d7ba9fa7634764f2fd5bb81e8183ce18&a ...

  8. 正则表达式验证身份证号以及验证校验位的正确性

    需求:给定一个字符串,从中提取出身份证号 关于验证15位和18位身份证号的正则表达式可以参考下面的内容: http://www.cppcns.com/wangluo/re/183062.html 一. ...

  9. Review of Vehicle Recognition Technology - 车辆识别技术综述

    Review of Vehicle Recognition Technology - 车辆识别技术综述 ZHANG Qiang, LI Jiafeng, ZHUO Li Faculty of Info ...

  10. 小区车辆自动识别系统C语言,【碧桂园—4.0系统】智能车辆识别系统,轻松惬意出入智慧社区...

    原标题:[碧桂园-4.0系统]智能车辆识别系统,轻松惬意出入智慧社区 城市交通车水马龙工作忙碌了一天是不是想尽快回到心灵的港湾处 回到家门口是不是会因为传统的门禁系统 而不顺心.尴尬 今天带您了解碧桂 ...

最新文章

  1. GPU服务器选购指南-思腾合力篇
  2. R语言在ggplot中使用变量指定柱状图的名称实战
  3. git编辑器选哪个_对比了3款markdown编辑器,哪一款适合你呢?来看看吧
  4. Android中Preference的使用以及监听事件分析
  5. day10 局部变量 全局变量 作用域前奏
  6. linux触摸板设置密码程序6,centos linux 触摸板设置
  7. winform窗体 小项目【安装程序】
  8. vb excel 整行删除_Excel中常用的批量处理都不掌握,那就真的Out了
  9. 微软预展 Windows Server Studio 2008 将锁定四大主要任务
  10. node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度
  11. 事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(上)
  12. 如何在Unity项目中添加语音识别?
  13. funuiTitle-居中问题修改
  14. Android基础篇1:Activity
  15. Pytorch——对应点相乘+矩阵相乘
  16. 关于wow(mangos模拟器) 的物品生成器---wowItemEdit 1.0
  17. 台达A2/B2伺服电机编码器改功率软件
  18. 3ds max制作宋惠乔的教程----作者: 火星时代 来源: 火星时代
  19. 堆叠实验-典型配置H3C IRF
  20. 高并发抢红包系统红包随机金额生成算法

热门文章

  1. html 开源 折线图,ECharts折线图(一)
  2. 圆的周长,面积,球的体积和表面积
  3. qcalendarwidget只显示月_本周新股14只连发!明日3只新股可申购,分别是中信博、圣湘生物、瑞晟智能...
  4. Python下载文件的方式
  5. comsol移动网格_[转载]COMSOL动网格调试
  6. IDEA解决打开properties乱码问题
  7. 使用GSL库实现非线性最小二乘拟合—原理与C代码实现(VS2019)
  8. GMSK通信系统中频偏估计改进算法
  9. 斐波那契数列(循环)
  10. 聊天机器人系统的组成结构及关键技术