Vin验证工具类
来源:互联网 发布:超市管理知乎 编辑:程序博客网 时间:2024/05/08 13:10
验证vin合法性。
写接口时需要验证vin的合法性,遂修修改改弄了一个vin验证类,放到工程中可以直接使用。
package vin.youxinpai.com;import java.util.HashMap;import java.util.Map;public class VinUtil { public static Map<Character, Integer> kv = new HashMap<>(); public static Map<Integer, Integer> wv = new HashMap<>(); static { for (int i = 0; i < 10; i++) { kv.put(String.valueOf(i).charAt(0), i); } kv.put('a', 1); kv.put('b', 2); kv.put('c', 3); kv.put('d', 4); kv.put('e', 5); kv.put('f', 6); kv.put('g', 7); kv.put('h', 8); kv.put('j', 1); kv.put('k', 2); kv.put('l', 3); kv.put('m', 4); kv.put('n', 5); kv.put('p', 7); kv.put('q', 8); kv.put('r', 9); kv.put('s', 2); kv.put('t', 3); kv.put('u', 4); kv.put('v', 5); kv.put('w', 6); kv.put('x', 7); kv.put('y', 8); kv.put('z', 9); wv.put(1, 8); wv.put(2, 7); wv.put(3, 6); wv.put(4, 5); wv.put(5, 4); wv.put(6, 3); wv.put(7, 2); wv.put(8, 10); wv.put(10, 9); wv.put(11, 8); wv.put(12, 7); wv.put(13, 6); wv.put(14, 5); wv.put(15, 4); wv.put(16, 3); wv.put(17, 2); } public final static boolean isLegalVin(String vin) { if (null == vin) { return false; } else if (vin.trim().length() == 17) { vin = vin.trim().toLowerCase(); char[] codes = vin.toCharArray(); int resultInCode = 0; if ("0123456789".contains(vin.subSequence(8, 9))) { resultInCode = Integer .valueOf(vin.subSequence(8, 9).toString()); } else { if ("x".equals(vin.subSequence(8, 9))) { resultInCode = 10; }else{ return false; } } int total = 0; for (int i = 1; i < codes.length + 1; i++) { char code = codes[i - 1]; if (kv.containsKey(code)) { if (9 == i) { continue; } else { total += kv.get(code) * wv.get(i); } } else { return false; } } return resultInCode == total % 11; } else { return false; } }}
0 0
- Vin验证工具类
- 车辆识别号(VIN)验证
- VIN码识别,车架号识别,移动端VIN码识别,OCR扫描工具
- 汽车VIN编号 有效性检查 PHP 验证算法
- 验证码工具类
- JQuery验证工具类
- js 验证工具类
- JQuery验证工具类
- 身份证验证工具类
- 字符串验证工具类
- 身份证验证工具类
- 格式验证 工具类
- 身份证验证 工具类
- 手机号码验证工具类
- 验证码工具类
- 身份证验证工具类
- java验证工具类
- 验证码工具类
- test444
- JAVA运行时异常及常见的5中RuntimeExecption
- javaEE 后台框架 SpringMVC Mybatis Shiro druid
- Flume+Kafka整合
- 触发器和存储过程
- Vin验证工具类
- unity 3d快熟使用KGFMapSystem开发小地图
- JVM虚拟机类加载机制(一)
- At24lc512存储器访问内部地址方法---i2c通信获取
- LeetCode Algorithms #326 <Power of Three>
- 通过enter键实现登录操作
- 计蒜客:数据结构之哈希表
- 关于ALAsset的ALAssetPropertyAssetURL如何获取图片
- 关于 断点续传上传与秒传 你绕不过去的坎 html5+php