mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
add readFromStr
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
* 【core 】 增加compress包,扩充Zip操作灵活性
|
* 【core 】 增加compress包,扩充Zip操作灵活性
|
||||||
* 【json 】 增加JSONBeanParser
|
* 【json 】 增加JSONBeanParser
|
||||||
* 【poi 】 增加CellSetter,可以自定义单元格值写出
|
* 【poi 】 增加CellSetter,可以自定义单元格值写出
|
||||||
|
* 【poi 】 CsvReader增加readFromStr(pr#1755@Github)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【core 】 改进NumberChineseFormatter算法,补充完整单元测试,解决零问题
|
* 【core 】 改进NumberChineseFormatter算法,补充完整单元测试,解决零问题
|
||||||
|
@@ -3639,7 +3639,7 @@ public class CharSequenceUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 替换指定字符串的指定区间内字符为"*"
|
* 替换指定字符串的指定区间内字符为"*"
|
||||||
* 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtils(脱敏工具类)
|
* 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtil(脱敏工具类)
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* StrUtil.hide(null,*,*)=null
|
* StrUtil.hide(null,*,*)=null
|
||||||
@@ -3665,15 +3665,15 @@ public class CharSequenceUtil {
|
|||||||
* 脱敏,使用默认的脱敏策略
|
* 脱敏,使用默认的脱敏策略
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* StrUtil.desensitized("100", DesensitizedUtils.DesensitizedType.USER_ID)) = "0"
|
* StrUtil.desensitized("100", DesensitizedUtil.DesensitizedType.USER_ID)) = "0"
|
||||||
* StrUtil.desensitized("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME)) = "段**"
|
* StrUtil.desensitized("段正淳", DesensitizedUtil.DesensitizedType.CHINESE_NAME)) = "段**"
|
||||||
* StrUtil.desensitized("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD)) = "5***************1X"
|
* StrUtil.desensitized("51343620000320711X", DesensitizedUtil.DesensitizedType.ID_CARD)) = "5***************1X"
|
||||||
* StrUtil.desensitized("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE)) = "0915*****79"
|
* StrUtil.desensitized("09157518479", DesensitizedUtil.DesensitizedType.FIXED_PHONE)) = "0915*****79"
|
||||||
* StrUtil.desensitized("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE)) = "180****1999"
|
* StrUtil.desensitized("18049531999", DesensitizedUtil.DesensitizedType.MOBILE_PHONE)) = "180****1999"
|
||||||
* StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
|
* StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtil.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
|
||||||
* StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
|
* StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtil.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
|
||||||
* StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********"
|
* StrUtil.desensitized("1234567890", DesensitizedUtil.DesensitizedType.PASSWORD)) = "**********"
|
||||||
* StrUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
|
* StrUtil.desensitized("苏D40000", DesensitizedUtil.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
|
||||||
* StrUtil.desensitized("11011111222233333256", DesensitizedType.BANK_CARD)) = "1101 **** **** **** 3256"
|
* StrUtil.desensitized("11011111222233333256", DesensitizedType.BANK_CARD)) = "1101 **** **** **** 3256"
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@@ -111,19 +111,21 @@ public class CsvBaseReader implements Serializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 从字符串中读取CSV数据
|
* 从字符串中读取CSV数据
|
||||||
|
*
|
||||||
* @param csvStr CSV字符串
|
* @param csvStr CSV字符串
|
||||||
* @return {@link CsvData},包含数据列表和行信息
|
* @return {@link CsvData},包含数据列表和行信息
|
||||||
*/
|
*/
|
||||||
public CsvData read(String csvStr){
|
public CsvData readFromStr(String csvStr) {
|
||||||
return read(new StringReader(csvStr));
|
return read(new StringReader(csvStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从字符串中读取CSV数据
|
* 从字符串中读取CSV数据
|
||||||
|
*
|
||||||
* @param csvStr CSV字符串
|
* @param csvStr CSV字符串
|
||||||
* @param rowHandler 行处理器,用于一行一行的处理数据
|
* @param rowHandler 行处理器,用于一行一行的处理数据
|
||||||
*/
|
*/
|
||||||
public void read(String csvStr, CsvRowHandler rowHandler){
|
public void readFromStr(String csvStr, CsvRowHandler rowHandler) {
|
||||||
read(parse(new StringReader(csvStr)), rowHandler);
|
read(parse(new StringReader(csvStr)), rowHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,6 +220,7 @@ public class CsvBaseReader implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 从字符串中读取CSV数据并转换为Bean列表,读取后关闭Reader。<br>
|
* 从字符串中读取CSV数据并转换为Bean列表,读取后关闭Reader。<br>
|
||||||
* 此方法默认识别首行为标题行。
|
* 此方法默认识别首行为标题行。
|
||||||
|
*
|
||||||
* @param <T> Bean类型
|
* @param <T> Bean类型
|
||||||
* @param csvStr csv字符串
|
* @param csvStr csv字符串
|
||||||
* @param clazz Bean类型
|
* @param clazz Bean类型
|
||||||
|
@@ -60,7 +60,7 @@ public class CsvUtilTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readCsvStr1(){
|
public void readCsvStr1(){
|
||||||
CsvData data = CsvUtil.getReader().read("# 这是一行注释,读取时应忽略\n" +
|
CsvData data = CsvUtil.getReader().readFromStr("# 这是一行注释,读取时应忽略\n" +
|
||||||
"\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n");
|
"\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n");
|
||||||
List<CsvRow> rows = data.getRows();
|
List<CsvRow> rows = data.getRows();
|
||||||
final CsvRow row0 = rows.get(0);
|
final CsvRow row0 = rows.get(0);
|
||||||
@@ -75,7 +75,7 @@ public class CsvUtilTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readCsvStr2(){
|
public void readCsvStr2(){
|
||||||
CsvUtil.getReader().read("# 这是一行注释,读取时应忽略\n" +
|
CsvUtil.getReader().readFromStr("# 这是一行注释,读取时应忽略\n" +
|
||||||
"\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n",(csvRow)-> {
|
"\"sss,sss\",姓名,\"性别\",关注\"对象\",年龄,\"\",\"\"\"\n",(csvRow)-> {
|
||||||
// 只有一行,所以直接判断
|
// 只有一行,所以直接判断
|
||||||
Assert.assertEquals("sss,sss", csvRow.get(0));
|
Assert.assertEquals("sss,sss", csvRow.get(0));
|
||||||
|
Reference in New Issue
Block a user