From 9f5ecefc435766062610e050fb91d8241475247b Mon Sep 17 00:00:00 2001 From: yexuejc Date: Thu, 13 Jun 2024 16:38:41 +0800 Subject: [PATCH] =?UTF-8?q?[update]=20StrUtil=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E4=BB=A3=E7=A0=81=E4=BA=8C=E8=BF=9B=E5=88=B6?= =?UTF-8?q?=E7=9B=B8=E4=BA=92=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UPDATE.md | 9 ++-- .../java/com/yexuejc/base/util/StrUtil.java | 27 ++++++++--- .../com/yexuejc/base/util/StrUtilTest.java | 46 +++++++++---------- 3 files changed, 48 insertions(+), 34 deletions(-) diff --git a/UPDATE.md b/UPDATE.md index 4188526..0e96b60 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -5,10 +5,11 @@ yexuejc-base 更新记录 **time: **
**branch:** jre11
**update:**
-1. [FileUtil.java](src/main/java/com/yexuejc/base/util/FileUtil.java)增加读取大文件自定义方法和单纯读取方法 -2. JsonUtil 增加objToMap;优化obj2Json -3. DateUtil 标准化日期时间的转换函数 -4. [AES.java](src/main/java/com/yexuejc/base/encrypt/AES.java) 兼容ECB(虽然不再建议利用) +1. [FileUtil](src/main/java/com/yexuejc/base/util/FileUtil.java) 增加读取大文件自定义方法和单纯读取方法 +2. [JsonUtil](src/main/java/com/yexuejc/base/util/JsonUtil.java) 增加objToMap;优化obj2Json +3. [DateUtil](src/main/java/com/yexuejc/base/util/DateUtil.java) 标准化日期时间的转换函数 +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 diff --git a/src/main/java/com/yexuejc/base/util/StrUtil.java b/src/main/java/com/yexuejc/base/util/StrUtil.java index 4eace5d..3bdca00 100644 --- a/src/main/java/com/yexuejc/base/util/StrUtil.java +++ b/src/main/java/com/yexuejc/base/util/StrUtil.java @@ -539,13 +539,13 @@ public final class StrUtil { * 国家代码二进制转国家代码 * * @param countryCode 国家代码二进制转:010000000 - *
-     *                    1     0     1    0    1       1     1     1     1 
- * 日本 韓国  泰国 新加坡 中国内陸 台湾  香港 澳门 其他 - *
- * 右→左:0位:其他、1位:中国澳门、2位:中国香港、3位:中国台湾、4位:中国内陸、5位:新加坡、6位:泰国、7位:韓国、8位:日本 - *
1:在该国表示、0:不表示该国 - *
+ *
+     *  1     0     1    0    1       1     1     1     1 
+ * 日本 韓国  泰国 新加坡 中国内陸 台湾  香港 澳门 其他 + *
+ * 右→左:0位:其他、1位:中国澳门、2位:中国香港、3位:中国台湾、4位:中国内陸、5位:新加坡、6位:泰国、7位:韓国、8位:日本 + *
1:在该国表示、0:不表示该国 + *
* @return JPN:日本、KOR:韓国、THA:泰国、CHN:中国内陸、SGP:新加坡、TWN:中国台湾、HKG:中国香港、MAC:中国澳门、999:其他、0:不明 */ public static String getCountryByCode(String countryCode) { @@ -557,5 +557,18 @@ public final class StrUtil { 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; + } } diff --git a/src/test/java/com/yexuejc/base/util/StrUtilTest.java b/src/test/java/com/yexuejc/base/util/StrUtilTest.java index 70786ee..63c97ba 100644 --- a/src/test/java/com/yexuejc/base/util/StrUtilTest.java +++ b/src/test/java/com/yexuejc/base/util/StrUtilTest.java @@ -103,37 +103,37 @@ class StrUtilTest { @Test void countryToCode() { - Assertions.assertEquals(StrUtil.countryToCode("JPN"),"100000000"); - Assertions.assertEquals(StrUtil.countryToCode("KOR"),"010000000"); - Assertions.assertEquals(StrUtil.countryToCode("THA"),"001000000"); - Assertions.assertEquals(StrUtil.countryToCode("CHN"),"000100000"); - Assertions.assertEquals(StrUtil.countryToCode("SGP"),"000010000"); - Assertions.assertEquals(StrUtil.countryToCode("TWN"),"000001000"); - Assertions.assertEquals(StrUtil.countryToCode("HKG"),"000000100"); - Assertions.assertEquals(StrUtil.countryToCode("MAC"),"000000010"); - Assertions.assertEquals(StrUtil.countryToCode("999"),"000000001"); - Assertions.assertEquals(StrUtil.countryToCode("O"),"000000000"); + Assertions.assertEquals(StrUtil.countryToCode("JPN"), "100000000"); + Assertions.assertEquals(StrUtil.countryToCode("KOR"), "010000000"); + Assertions.assertEquals(StrUtil.countryToCode("THA"), "001000000"); + Assertions.assertEquals(StrUtil.countryToCode("SGP"), "000100000"); + Assertions.assertEquals(StrUtil.countryToCode("CHN"), "000010000"); + Assertions.assertEquals(StrUtil.countryToCode("TWN"), "000001000"); + Assertions.assertEquals(StrUtil.countryToCode("HKG"), "000000100"); + Assertions.assertEquals(StrUtil.countryToCode("MAC"), "000000010"); + Assertions.assertEquals(StrUtil.countryToCode("999"), "000000001"); + Assertions.assertEquals(StrUtil.countryToCode("O"), "000000000"); } @Test void getCountryByCode() { - Assertions.assertEquals(StrUtil.getCountryByCode("100000000"),"JPN"); - Assertions.assertEquals(StrUtil.getCountryByCode("010000000"),"KOR"); - Assertions.assertEquals(StrUtil.getCountryByCode("001000000"),"THA"); - Assertions.assertEquals(StrUtil.getCountryByCode("000100000"),"CHN"); - Assertions.assertEquals(StrUtil.getCountryByCode("000010000"),"SGP"); - Assertions.assertEquals(StrUtil.getCountryByCode("000001000"),"TWN"); - Assertions.assertEquals(StrUtil.getCountryByCode("000000100"),"HKG"); - Assertions.assertEquals(StrUtil.getCountryByCode("000000010"),"MAC"); - Assertions.assertEquals(StrUtil.getCountryByCode("000000001"),"999"); - Assertions.assertEquals(StrUtil.getCountryByCode("000000000"),"O"); - Assertions.assertEquals(StrUtil.getCountryByCode("100000000000"),"O"); - Assertions.assertEquals(StrUtil.getCountryByCode("-100000000000"),"O"); + Assertions.assertEquals(StrUtil.getCountryByCode("100000000"), "JPN"); + Assertions.assertEquals(StrUtil.getCountryByCode("010000000"), "KOR"); + Assertions.assertEquals(StrUtil.getCountryByCode("001000000"), "THA"); + Assertions.assertEquals(StrUtil.getCountryByCode("000100000"), "SGP"); + Assertions.assertEquals(StrUtil.getCountryByCode("000010000"), "CHN"); + Assertions.assertEquals(StrUtil.getCountryByCode("000001000"), "TWN"); + Assertions.assertEquals(StrUtil.getCountryByCode("000000100"), "HKG"); + Assertions.assertEquals(StrUtil.getCountryByCode("000000010"), "MAC"); + Assertions.assertEquals(StrUtil.getCountryByCode("000000001"), "999"); + Assertions.assertEquals(StrUtil.getCountryByCode("000000000"), "O"); + Assertions.assertEquals(StrUtil.getCountryByCode("100000000000"), "O"); + Assertions.assertEquals(StrUtil.getCountryByCode("-100000000000"), "O"); } @Test 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")); } } \ No newline at end of file