附代碼:java導出的CSV文件中,字段內容中包含分隔符(如英文逗號,英文雙引號)的處理方案

 

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

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章