mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
修复\n#出现在双引号中解析错误问题
This commit is contained in:
parent
41cf55184a
commit
0662e77c0a
@ -260,7 +260,8 @@ public final class CsvParser extends ComputeIter<CsvRow> implements Closeable, S
|
||||
if(preChar < 0 || preChar == CharUtil.CR || preChar == CharUtil.LF){
|
||||
// 判断行首字符为指定注释字符的注释开始,直到遇到换行符
|
||||
// 行首分两种,1是preChar < 0表示文本开始,2是换行符后紧跟就是下一行的开始
|
||||
if(null != this.config.commentCharacter && c == this.config.commentCharacter){
|
||||
// issue#IA8WE0 如果注释符出现在包装符内,被认为是普通字符
|
||||
if(!inQuotes && null != this.config.commentCharacter && c == this.config.commentCharacter){
|
||||
inComment = true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,29 @@
|
||||
package org.dromara.hutool.poi.csv;
|
||||
|
||||
import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
/**
|
||||
* https://gitee.com/dromara/hutool/issues/IA8WE0
|
||||
*/
|
||||
public class IssueIA8WE0Test {
|
||||
@Test
|
||||
void csvReadTest() {
|
||||
final CsvReader csvReader = new CsvReader();
|
||||
final CsvData read = csvReader.read(FileUtil.file("issueIA8WE0.csv"));
|
||||
final List<CsvRow> rows = read.getRows();
|
||||
|
||||
assertEquals(1, rows.size());
|
||||
assertEquals(3, rows.get(0).size());
|
||||
assertEquals("c1_text1", rows.get(0).get(0));
|
||||
// 如果\n#出现在双引号中,表示实际的文本内容,并不算注释
|
||||
assertEquals("c1_text2\n#c1_text2_line2", rows.get(0).get(1));
|
||||
assertEquals("c1_text3", rows.get(0).get(2));
|
||||
|
||||
csvReader.close();
|
||||
}
|
||||
}
|
2
hutool-poi/src/test/resources/issueIA8WE0.csv
Normal file
2
hutool-poi/src/test/resources/issueIA8WE0.csv
Normal file
@ -0,0 +1,2 @@
|
||||
c1_text1,"c1_text2
|
||||
#c1_text2_line2",c1_text3
|
|
Loading…
x
Reference in New Issue
Block a user