Java实现的三证合一统一社会代码校验算法详解
2星 需积分: 50 48 浏览量
更新于2024-09-09
1
收藏 3KB TXT 举报
"该Java代码片段是用于校验"三证合一、一照一码"中的法人和其他组织统一社会代码(统称统一代码)的一种算法。"三证合一"通常指的是将企业营业执照、组织机构代码证和税务登记证合并为一个统一的社会信用代码。这个代码由四个部分组成:前两位为行政区划代码,接下来六位为机构类型代码,然后是八位顺序码,最后一位为校验码,可以是数字或字母Y。
算法的核心部分定义了两个字符串数组(codeNo和staVal),它们分别对应于代码的不同部分,如前两位行政区划代码和顺序码的字符范围。此外,还定义了一个整数数组wi,用于校验码的计算规则,即不同位置的权重。1-18位的权重值分别对应于校验码的生成过程。
校验过程通过正则表达式`^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})([0-9]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-9Y])$`进行匹配。这个正则表达式的结构表明:
1. 第一部分是两组大写字母,代表前两位行政区划代码。
2. 第二部分是六位数字,表示机构类型代码。
3. 第三部分是九位数字或大写字母,作为顺序码。
4. 第四部分只有一位,可能是数字0-9或字母Y,作为校验码。
`Pattern.compile(regex)`用于编译正则表达式,`matcher(str)`则是将待校验的统一代码字符串与模式进行匹配。如果匹配成功,`matcher`对象会提供方法来检查各个部分是否符合规定的格式和逻辑,例如校验码是否根据前面的部分正确计算得出。
这段Java代码是用于验证统一社会信用代码格式的工具,确保其符合GB32100-2015标准,这对于在IT系统中处理和验证此类关键数据至关重要。开发者可以通过调用`checkSCC(String str)`方法,传入统一社会代码,来判断其是否有效。"
2019-10-22 上传
2021-09-04 上传
2020-12-22 上传
2022-06-08 上传
2021-04-30 上传
2018-04-24 上传
2020-08-25 上传
大连小猪
- 粉丝: 0
- 资源: 4
最新资源
- 用Jemter进行测试
- SIP与诺基亚SIP工具
- C167控制器结构_法文版(法国图卢兹三教学资料)
- c + + 学 习 PDF文件
- Beginning_.NET_Game_Programming_in_VB.NET.pdf
- Beginning C Sharp Game Programming 2005.pdf
- 高质量C++编程指南
- Linux编程第4版
- GB8567-88软件开发文档
- eclipse插件开发指南
- 人工神经网络电子讲稿
- myLib(for ACM)
- c++高质量编程提高
- Sybase数据库备份方案.txt
- ccs(Code Composer Studio)教程
- java实现记事本功能