From 7b667a817af7d1cdb5eb732efc2a0b6af20f0ddb Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 10 Aug 2021 21:09:06 +0800 Subject: [PATCH] add readFromStr --- CHANGELOG.md | 1 + .../cn/hutool/core/text/CharSequenceUtil.java | 20 +++++++++---------- .../hutool/core/text/csv/CsvBaseReader.java | 11 ++++++---- .../cn/hutool/core/text/csv/CsvUtilTest.java | 4 ++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab5e997bd..17518bbfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * 【core 】 增加compress包,扩充Zip操作灵活性 * 【json 】 增加JSONBeanParser * 【poi 】 增加CellSetter,可以自定义单元格值写出 +* 【poi 】 CsvReader增加readFromStr(pr#1755@Github) ### 🐞Bug修复 * 【core 】 改进NumberChineseFormatter算法,补充完整单元测试,解决零问题 diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java index f165c1641..6c9b7f0a0 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java @@ -3639,7 +3639,7 @@ public class CharSequenceUtil { /** * 替换指定字符串的指定区间内字符为"*" - * 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtils(脱敏工具类) + * 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtil(脱敏工具类) * *
 	 * StrUtil.hide(null,*,*)=null
@@ -3665,15 +3665,15 @@ public class CharSequenceUtil {
 	 * 脱敏,使用默认的脱敏策略
 	 *
 	 * 
-	 * StrUtil.desensitized("100", DesensitizedUtils.DesensitizedType.USER_ID)) =  "0"
-	 * StrUtil.desensitized("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME)) = "段**"
-	 * StrUtil.desensitized("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD)) = "5***************1X"
-	 * StrUtil.desensitized("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE)) = "0915*****79"
-	 * StrUtil.desensitized("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE)) = "180****1999"
-	 * StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
-	 * StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
-	 * StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********"
-	 * StrUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
+	 * StrUtil.desensitized("100", DesensitizedUtil.DesensitizedType.USER_ID)) =  "0"
+	 * StrUtil.desensitized("段正淳", DesensitizedUtil.DesensitizedType.CHINESE_NAME)) = "段**"
+	 * StrUtil.desensitized("51343620000320711X", DesensitizedUtil.DesensitizedType.ID_CARD)) = "5***************1X"
+	 * StrUtil.desensitized("09157518479", DesensitizedUtil.DesensitizedType.FIXED_PHONE)) = "0915*****79"
+	 * StrUtil.desensitized("18049531999", DesensitizedUtil.DesensitizedType.MOBILE_PHONE)) = "180****1999"
+	 * StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtil.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
+	 * StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtil.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
+	 * StrUtil.desensitized("1234567890", DesensitizedUtil.DesensitizedType.PASSWORD)) = "**********"
+	 * StrUtil.desensitized("苏D40000", DesensitizedUtil.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
 	 * StrUtil.desensitized("11011111222233333256", DesensitizedType.BANK_CARD)) = "1101 **** **** **** 3256"
 	 * 
* diff --git a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java index 5cbb24f53..f781c61e1 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/csv/CsvBaseReader.java @@ -111,19 +111,21 @@ public class CsvBaseReader implements Serializable { /** * 从字符串中读取CSV数据 + * * @param csvStr CSV字符串 * @return {@link CsvData},包含数据列表和行信息 */ - public CsvData read(String csvStr){ + public CsvData readFromStr(String csvStr) { return read(new StringReader(csvStr)); } /** * 从字符串中读取CSV数据 - * @param csvStr CSV字符串 + * + * @param csvStr CSV字符串 * @param rowHandler 行处理器,用于一行一行的处理数据 */ - public void read(String csvStr, CsvRowHandler rowHandler){ + public void readFromStr(String csvStr, CsvRowHandler rowHandler) { read(parse(new StringReader(csvStr)), rowHandler); } @@ -218,12 +220,13 @@ public class CsvBaseReader implements Serializable { /** * 从字符串中读取CSV数据并转换为Bean列表,读取后关闭Reader。
* 此方法默认识别首行为标题行。 + * * @param Bean类型 * @param csvStr csv字符串 * @param clazz Bean类型 * @return Bean列表 */ - public List read(String csvStr,Class clazz){ + public List read(String csvStr, Class clazz) { // 此方法必须包含标题 this.config.setContainsHeader(true); diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java index 0a90ed3bc..bad09cdd9 100644 --- a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvUtilTest.java @@ -60,7 +60,7 @@ public class CsvUtilTest { @Test public void readCsvStr1(){ - CsvData data = CsvUtil.getReader().read("# 这是一行注释,读取时应忽略\n" + + CsvData data = CsvUtil.getReader().readFromStr("# 这是一行注释,读取时应忽略\n" + "\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n"); List rows = data.getRows(); final CsvRow row0 = rows.get(0); @@ -75,7 +75,7 @@ public class CsvUtilTest { @Test public void readCsvStr2(){ - CsvUtil.getReader().read("# 这是一行注释,读取时应忽略\n" + + CsvUtil.getReader().readFromStr("# 这是一行注释,读取时应忽略\n" + "\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n",(csvRow)-> { // 只有一行,所以直接判断 Assert.assertEquals("sss,sss", csvRow.get(0));