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));