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("數裏聞寒水,山家少四鄰,作者:\"賈島\""));
}
}