fix comment

This commit is contained in:
Looly 2022-02-23 13:28:53 +08:00
parent 701ac88742
commit 541c61c304
2 changed files with 19 additions and 4 deletions

View File

@ -7,7 +7,8 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
* 统一社会信用代码工具类 * 统一社会信用代码GB32100-2015工具类<br>
* 标准见https://www.cods.org.cn/c/2020-10-29/12575.html
* *
* <pre> * <pre>
* 第一部分登记管理部门代码1位 (数字或大写英文字母) * 第一部分登记管理部门代码1位 (数字或大写英文字母)
@ -24,7 +25,13 @@ public class CreditCodeUtil {
public static final Pattern CREDIT_CODE_PATTERN = PatternPool.CREDIT_CODE; public static final Pattern CREDIT_CODE_PATTERN = PatternPool.CREDIT_CODE;
/**
* 加权因子
*/
private static final int[] WEIGHT = {1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28}; private static final int[] WEIGHT = {1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28};
/**
* 代码字符集
*/
private static final char[] BASE_CODE_ARRAY = "0123456789ABCDEFGHJKLMNPQRTUWXY".toCharArray(); private static final char[] BASE_CODE_ARRAY = "0123456789ABCDEFGHJKLMNPQRTUWXY".toCharArray();
private static final Map<Character, Integer> CODE_INDEX_MAP; private static final Map<Character, Integer> CODE_INDEX_MAP;
@ -110,10 +117,10 @@ public class CreditCodeUtil {
} }
/** /**
* 获取校验 * 获取校验位的值
* *
* @param creditCode 统一社会信息代码 * @param creditCode 统一社会信息代码
* @return 获取较验位的值 * @return 获取校验位的值-1表示获取错误
*/ */
private static int getParityBit(CharSequence creditCode) { private static int getParityBit(CharSequence creditCode) {
int sum = 0; int sum = 0;

View File

@ -17,6 +17,14 @@ public class CreditCodeUtilTest {
Assert.assertTrue(CreditCodeUtil.isCreditCode(testCreditCode)); Assert.assertTrue(CreditCodeUtil.isCreditCode(testCreditCode));
} }
@Test
public void isCreditCode2() {
// 由于早期部分试点地区推行 法人和其他组织统一社会信用代码 较早会存在部分代码不符合国家标准的情况
// https://github.com/bluesky335/IDCheck
String testCreditCode = "91350211M00013FA1N";
Assert.assertFalse(CreditCodeUtil.isCreditCode(testCreditCode));
}
@Test @Test
public void randomCreditCode() { public void randomCreditCode() {
final String s = CreditCodeUtil.randomCreditCode(); final String s = CreditCodeUtil.randomCreditCode();