java校验集装箱柜号是否正确

开门见山地说在某些需求中是要校验集装箱的柜号,而如果了解集装箱柜号的朋友会发现,集装箱柜号的校验你可能读都读不明白,怎么去写校验。各位,莫慌,接下来我将给大家介绍集装箱柜号的校验代码,亲测有效!

 //校验柜号是否正确public static boolean verifyCntrCode(String strCode) {boolean result = true;try {if (strCode.length() != 11) {return false;}char[] codeChars = strCode.toCharArray();String charCode = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ";int num = 0;for (int i = 0; i < 10; i++) {int idx = charCode.indexOf(codeChars[i]);if (idx == -1 || charCode.charAt(idx)=='?') {return false;}idx =  (int) (idx * Math.pow(2, i));num += idx;}num = (num % 11) % 10;result = Integer.parseInt(String.valueOf(codeChars[10])) == num;}catch (Exception e){result = false;}return  result;}

没错以上就是校验集装箱柜号的代码,下面再上一下百度下来的集装箱柜号的规则:

标准箱号构成基本概念:采用ISO6346(1995)标准。 标准集装箱箱号由11位编码组成,包括三个部分:
1、第一部分由4位英文字母组成。前三位代码 (Owner Code) 主要说明箱主、经营人,第四位代码说明集装箱的类型。列如CBHU
开头的标准集装箱是表明箱主和经营人为中远集运。
2、 第二部分由6位数字组成。是箱体注册码(Registration Code),用于一个集装箱箱体持有的唯一标识。
3、 第三部分为校验码(Check Digit)由前4位字母和6位数字经过校验规则运算得到,用于识别在校验时是否发生错误。即第11位数字。根据校验规则箱号的每个字母和数字都有一个运算的对应值。箱号的前10位字母和数字的对应值从0到Z对应数值为10到38,11、22、33不能对11取模数,所以要除去
第N位的箱号对应值再分别乘以2的N-1次方 (N=1,2,3…………10) 例如:箱号为CBHU3202732的集装箱它的第1位代码为C,它的代码值=代码的对应值×2的0次方 =13×1=13。 类推第2位代码为B 它的代码值=代码的对应值×2的1次方 =12×2=24 以此类推得到箱号前10位代码的代码值。 将前10位的代码值乘积累加后对11取模
箱号为CBHU3202732的集装箱前10位箱号的代码累加值=4061,取11的模后为2,就是这个箱号第11位的识别码的数值。

希望以上内容能帮到大家!

java校验集装箱柜号是否正确相关推荐

  1. 校验集装箱号;java校验集装箱号并附解析

    需求 其实这是一道算法题: 先看看集装箱编号的规则说明 一. 标准箱号构成基本概念:采用ISO6346(1995)标准. 标准集装箱箱号由11位编码组成,包括三个部分: 1. 第一部分由4位英文字母组 ...

  2. java校验身份证号实例

    这是笔者整理的比较详细的java后端校验身份证号码的测试demo,希望对你有用,哈哈哈~ 不多说,直接上代码,喜欢的多多评论点赞,哈哈哈~ package com.lg.handlers;import ...

  3. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  4. Java实现微信公众号客服功能和本地联调

    Java实现微信公众号客服功能 微信公众平台设置 生产环境 公众号 设置 [开发]–> [基本配置]–> [服务器配置] 注: a.服务器地址(URL) 是开发者用来接收微信消息和事件的接 ...

  5. itchat4j -- 用Java扩展个人微信号的能力

    itchat4j – 用Java扩展个人微信号的能力 项目地址:itchat4j,该项目长期维护更新,欢迎star.fork. pull requests. issue. 来源 itchat是一个非常 ...

  6. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  7. Java校验框架-Oval

    Java校验框架-Oval 介绍 例子 代码 pom.xml Student.java ClassInfo.java TypeCheck.java StudentVerifyTest.java 运行测 ...

  8. Java 校验时间格式是否为 yyyy-MM-dd HH:mm:ss

    微信公众号:[一起学习大数据呀] 关注可学习更多奇怪的知识! 前言 产品让我添加一个导入Excel 表格并对时间格式校验:"yyyy-MM-dd HH:mm:ss".网上的博客又参 ...

  9. java校验日期格式

    java校验日期格式 (这里提供两种校验日期格式的方法) 二.使用步骤 1.引入库 校验日期格式是否正确 代码如下(示例): public static boolean checkDate(Strin ...

最新文章

  1. composer爆错:zlib_decode():data error
  2. RT-Thread逐飞-智能车培训之RT-Thread在全向行进组中的应用
  3. 导出对象_从代数几何到导出代数几何:形变与逼近
  4. php sort 不同类型导致的问题
  5. Linux 题目总结
  6. python一个月能掌握吗_Python 从入门到精通:一个月足够了!
  7. PYTHON招聘需求与技能体系
  8. 微机原理和计算机组成原理一样吗_计算机组成原理:计算机的层次与编程语言...
  9. SharePoint 2013 对二进制大型对象(BLOB)进行爬网
  10. python魔术方法大全_python中魔术方法和属性汇总
  11. 拓端tecdat|R语言多臂试验 - 我们应该考虑多重性吗?
  12. WizTree——一个扫描快似Everything的硬盘空间分析工具
  13. 程序员平时都是木讷的,但是谈到计算机或者程序的时候简直就是天才—兼借题发挥,谈谈语言及工具的选择...
  14. 使用Golang编写Android应用
  15. Jupyter Notebook,day1 2019.3.25
  16. android storage 路径,风儿带你了解Android存储路径。
  17. android多线程下载程序卡死,android 多线程下载与断点续传
  18. 二手书籍交易管理系统,二手书交易系统,二手书交易网站毕业设计
  19. 考证和考研,哪一条路才是计算机专业拿到高薪的秘诀?
  20. 基于STM32的0.96寸OLED显示屏显示汉字+数字

热门文章

  1. vue element-ui 日期弹出框右侧被遮挡
  2. 单片机使能是什么意思?
  3. 用相关法辨识系统的脉冲响应 matlab,利用相关分析法辨识脉冲响应
  4. 利用tcp三次握手,使用awl伪装MAC地址进行多线程SYN Flood
  5. 手机/微信/浏览器的字体设置太大,rem 计算不准确
  6. R语言的graphics功能(画图)
  7. linux下,代码阅读工具,understand
  8. D. Little Girl and Maximum XOR(贪心)
  9. 2005-11-11
  10. 如何选择合适的无线网桥