[update] StrUtil 增加国家代码二进制相互转换

This commit is contained in:
yexuejc 2024-06-13 16:38:41 +08:00
parent beb72c8009
commit 9f5ecefc43
3 changed files with 48 additions and 34 deletions

View File

@ -5,10 +5,11 @@ yexuejc-base 更新记录
**time ** <br/> **time ** <br/>
**branch** jre11 <br/> **branch** jre11 <br/>
**update** <br/> **update** <br/>
1. [FileUtil.java](src/main/java/com/yexuejc/base/util/FileUtil.java)增加读取大文件自定义方法和单纯读取方法 1. [FileUtil](src/main/java/com/yexuejc/base/util/FileUtil.java) 增加读取大文件自定义方法和单纯读取方法
2. JsonUtil 增加objToMap优化obj2Json 2. [JsonUtil](src/main/java/com/yexuejc/base/util/JsonUtil.java) 增加objToMap优化obj2Json
3. DateUtil 标准化日期时间的转换函数 3. [DateUtil](src/main/java/com/yexuejc/base/util/DateUtil.java) 标准化日期时间的转换函数
4. [AES.java](src/main/java/com/yexuejc/base/encrypt/AES.java) 兼容ECB(虽然不再建议利用) 4. [AES](src/main/java/com/yexuejc/base/encrypt/AES.java) 兼容ECB(虽然不再建议利用)
5. [StrUtil](src/main/java/com/yexuejc/base/util/StrUtil.java) 增加国家代码二进制相互转换
--- ---
#### version 1.5.2-jre11 #### version 1.5.2-jre11

View File

@ -557,5 +557,18 @@ public final class StrUtil {
return COUNTRY_CODE.get(COUNTRY_CODE.size() - 1 - index); return COUNTRY_CODE.get(COUNTRY_CODE.size() - 1 - index);
} }
/**
* nationalCodeは想定国エリア範囲内存在するかどうか
* 想定国エリア範囲"JPN", "KOR", "THA", "SGP", "CHN", "TWN", "HKG", "MAC", "999"
*
* @param nationCode
* @return 存在true存在しないfalse
*/
public static boolean containsCountry(String nationCode) {
if (isNotEmpty(nationCode)) {
return COUNTRY_CODE.contains(nationCode);
}
return false;
}
} }

View File

@ -103,37 +103,37 @@ class StrUtilTest {
@Test @Test
void countryToCode() { void countryToCode() {
Assertions.assertEquals(StrUtil.countryToCode("JPN"),"100000000"); Assertions.assertEquals(StrUtil.countryToCode("JPN"), "100000000");
Assertions.assertEquals(StrUtil.countryToCode("KOR"),"010000000"); Assertions.assertEquals(StrUtil.countryToCode("KOR"), "010000000");
Assertions.assertEquals(StrUtil.countryToCode("THA"),"001000000"); Assertions.assertEquals(StrUtil.countryToCode("THA"), "001000000");
Assertions.assertEquals(StrUtil.countryToCode("CHN"),"000100000"); Assertions.assertEquals(StrUtil.countryToCode("SGP"), "000100000");
Assertions.assertEquals(StrUtil.countryToCode("SGP"),"000010000"); Assertions.assertEquals(StrUtil.countryToCode("CHN"), "000010000");
Assertions.assertEquals(StrUtil.countryToCode("TWN"),"000001000"); Assertions.assertEquals(StrUtil.countryToCode("TWN"), "000001000");
Assertions.assertEquals(StrUtil.countryToCode("HKG"),"000000100"); Assertions.assertEquals(StrUtil.countryToCode("HKG"), "000000100");
Assertions.assertEquals(StrUtil.countryToCode("MAC"),"000000010"); Assertions.assertEquals(StrUtil.countryToCode("MAC"), "000000010");
Assertions.assertEquals(StrUtil.countryToCode("999"),"000000001"); Assertions.assertEquals(StrUtil.countryToCode("999"), "000000001");
Assertions.assertEquals(StrUtil.countryToCode("O"),"000000000"); Assertions.assertEquals(StrUtil.countryToCode("O"), "000000000");
} }
@Test @Test
void getCountryByCode() { void getCountryByCode() {
Assertions.assertEquals(StrUtil.getCountryByCode("100000000"),"JPN"); Assertions.assertEquals(StrUtil.getCountryByCode("100000000"), "JPN");
Assertions.assertEquals(StrUtil.getCountryByCode("010000000"),"KOR"); Assertions.assertEquals(StrUtil.getCountryByCode("010000000"), "KOR");
Assertions.assertEquals(StrUtil.getCountryByCode("001000000"),"THA"); Assertions.assertEquals(StrUtil.getCountryByCode("001000000"), "THA");
Assertions.assertEquals(StrUtil.getCountryByCode("000100000"),"CHN"); Assertions.assertEquals(StrUtil.getCountryByCode("000100000"), "SGP");
Assertions.assertEquals(StrUtil.getCountryByCode("000010000"),"SGP"); Assertions.assertEquals(StrUtil.getCountryByCode("000010000"), "CHN");
Assertions.assertEquals(StrUtil.getCountryByCode("000001000"),"TWN"); Assertions.assertEquals(StrUtil.getCountryByCode("000001000"), "TWN");
Assertions.assertEquals(StrUtil.getCountryByCode("000000100"),"HKG"); Assertions.assertEquals(StrUtil.getCountryByCode("000000100"), "HKG");
Assertions.assertEquals(StrUtil.getCountryByCode("000000010"),"MAC"); Assertions.assertEquals(StrUtil.getCountryByCode("000000010"), "MAC");
Assertions.assertEquals(StrUtil.getCountryByCode("000000001"),"999"); Assertions.assertEquals(StrUtil.getCountryByCode("000000001"), "999");
Assertions.assertEquals(StrUtil.getCountryByCode("000000000"),"O"); Assertions.assertEquals(StrUtil.getCountryByCode("000000000"), "O");
Assertions.assertEquals(StrUtil.getCountryByCode("100000000000"),"O"); Assertions.assertEquals(StrUtil.getCountryByCode("100000000000"), "O");
Assertions.assertEquals(StrUtil.getCountryByCode("-100000000000"),"O"); Assertions.assertEquals(StrUtil.getCountryByCode("-100000000000"), "O");
} }
@Test @Test
void countryToCodeByte() { void countryToCodeByte() {
System.out.println(String.format("%9s",Integer.toBinaryString(StrUtil.countryToCodeByte("CHN") & 0xFF)).replace(" ","0")); System.out.println(String.format("%9s", Integer.toBinaryString(StrUtil.countryToCodeByte("CHN") & 0xFF)).replace(" ", "0"));
} }
} }