You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除CSV文件中的引号与分隔逗号以简化Java解析?

处理CSV文件:移除引号和分隔逗号并适配Java解析

我来帮你搞定这个CSV处理的问题!要移除所有引号和分隔用的逗号,同时方便后续Java解析,这里有两种实用的方案供你选择:

方案一:直接移除所有引号和逗号(简单粗暴型)

如果你的CSV里没有字段本身包含逗号的情况,或者你希望彻底清除所有逗号,这个方法最快捷。它会逐行读取CSV,直接替换掉所有双引号和逗号,输出干净的文本内容。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class SimpleCsvCleaner {
    public static void main(String[] args) {
        String inputCsv = "你的输入文件路径.csv";
        String outputFile = "处理后的文件路径.txt";

        try (BufferedReader reader = new BufferedReader(new FileReader(inputCsv));
             BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {

            String line;
            while ((line = reader.readLine()) != null) {
                // 先移除所有双引号
                String noQuotes = line.replaceAll("\"", "");
                // 再移除所有逗号
                String cleanLine = noQuotes.replaceAll(",", "");
                writer.write(cleanLine);
                writer.newLine();
            }
            System.out.println("文件处理完成,已生成无引号无逗号的干净文本!");
        } catch (IOException e) {
            System.err.println("处理文件时出错:" + e.getMessage());
            e.printStackTrace();
        }
    }
}

方案二:精准移除分隔用的逗号(保留字段内的特殊字符)

如果你的CSV里存在字段本身包含逗号的情况(比如"张三,李四","北京"),直接替换所有逗号会破坏字段内容。这个方案会先正确解析CSV的字段,只移除作为分隔符的逗号,保留字段内部的逗号,再拼接成连续文本。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PreciseCsvCleaner {
    public static void main(String[] args) {
        String inputCsv = "你的输入文件路径.csv";
        String outputFile = "处理后的文件路径.txt";

        try (BufferedReader reader = new BufferedReader(new FileReader(inputCsv));
             BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {

            String line;
            while ((line = reader.readLine()) != null) {
                // 解析一行CSV的所有字段
                List<String> fields = parseCsvFields(line);
                // 拼接所有字段,无分隔符
                String cleanLine = String.join("", fields);
                writer.write(cleanLine);
                writer.newLine();
            }
            System.out.println("文件处理完成,已精准移除分隔逗号!");
        } catch (IOException e) {
            System.err.println("处理文件时出错:" + e.getMessage());
            e.printStackTrace();
        }
    }

    // 自定义CSV字段解析方法,区分引号内的逗号和分隔逗号
    private static List<String> parseCsvFields(String line) {
        List<String> fields = new ArrayList<>();
        StringBuilder currentField = new StringBuilder();
        boolean inQuotes = false;

        for (char c : line.toCharArray()) {
            if (c == '"') {
                // 切换引号包裹状态
                inQuotes = !inQuotes;
            } else if (c == ',' && !inQuotes) {
                // 遇到分隔逗号,保存当前字段
                fields.add(currentField.toString());
                currentField.setLength(0);
            } else {
                // 追加字符到当前字段
                currentField.append(c);
            }
        }
        // 添加最后一个字段
        fields.add(currentField.toString());
        return fields;
    }
}

使用提示

  • 处理后的文件可以直接用Java的BufferedReader按行读取,完全不需要额外的CSV解析库,非常便捷。
  • 如果需要调整输出格式(比如用空格分隔字段),只需要把String.join("", fields)改成String.join(" ", fields)即可。

内容的提问来源于stack exchange,提问作者user7800166

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:16:07