Talk is cheap, show me the code.
/**
* CSV字段内容中包含分隔符(如英文逗号,英文双引号)的处理方案
*
* 字段中包含有英文逗号,该字段必须用英文双引号括起来
* 字段中包含有英文双引号,该字段必须用额外的双引号括起来
*/
public class JavaExportCsvFieldContentParse {
/**
* 写入csv文件时,对字段内容进行格式化
* 1,英文逗号处理
* 2,英文双引号处理
* @param content
* @return
*/
private String fieldContentFormat(Object content) {
if (content == null) {
return "";
}
String notNullContent = content.toString();
if (notNullContent.contains("\"")) {
// 处理英文双引号
notNullContent = notNullContent.replaceAll("\"", "\"\"");
}
// 处理英文逗号
return new StringBuffer("\"").append(notNullContent).append("\"").toString();
}
public static void main(String[] args) {
JavaExportCsvFieldContentParse javaExportCsvFieldContentParse = new JavaExportCsvFieldContentParse();
// 字段中含有英文逗号的场景
System.out.println(javaExportCsvFieldContentParse.fieldContentFormat("数里闻寒水,山家少四邻"));
// 字段中含有英文双引号的场景
System.out.println(javaExportCsvFieldContentParse.fieldContentFormat("数里闻寒水,山家少四邻,作者:\"贾岛\""));
}
}