Bootstrap

CSV文件对包含逗号的

在保存数据到 CSV 文件时,如果数据中包含逗号,应该对包含逗号的数据进行处理,以避免它被误认为是字段分隔符。最常见的做法是:

  1. 使用双引号将包含逗号的数据包裹起来。
  2. 如果数据本身包含双引号,那么需要对双引号进行转义(通常是两个连续的双引号 “”)。
    以下是一个处理包含逗号和双引号的 CSV 文件写入示例:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class CsvWriter {

    public static void saveDataToCSV(String[] data, String filePath) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            for (String field : data) {
                // 如果字段中包含逗号或双引号,就需要处理
                if (field.contains(",") || field.contains("\"")) {
                    // 替换双引号为两个双引号
                    field = "\"" + field.replace("\"", "\"\"") + "\"";
                }
                // 写入字段到CSV文件,并添加逗号分隔
                writer.write(field + ",");
            }
            writer.newLine();  // 换行
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 示例数据,其中包含逗号和双引号
        String[] data = {"John Doe", "123 Main St, Apt 4B", "She said \"Hello!\"", "25"};

        // 保存数据到CSV文件
        saveDataToCSV(data, "output.csv");
    }
}

  • 检查数据中是否包含逗号或双引号:

    field.contains(“,”) 检查数据是否包含逗号。
    field.contains(“”") 检查数据是否包含双引号。

  • 处理包含逗号或双引号的数据:

    如果数据中包含逗号或双引号,使用双引号将数据包裹起来。
    使用 field.replace(“”“, “””") 处理字符串中的双引号,将每个双引号替换为两个双引号(这是 CSV 标准要求的做法)。

  • 写入 CSV 文件:

    将每个字段通过逗号分隔写入 CSV 文件。
    writer.write(field + “,”); 将每个字段写入文件,并加上逗号分隔符。
    writer.newLine(); 用于写入一行数据后换行。
    生成的 CSV 文件内容

;