java生成csv文件时,某数据含有逗号,双引号的分割问题

mysql数据库有一字段里的数据含有 "和,,见下图:


image.png

在生成csv文件时,会被分割为:

image.png

导致数据错位。

解决思想:
某字符含有逗号时,将该字符用双引号引起来,那么字符里的逗号将不会被解析;
含有双引号时,可替换为两个双引号。

部分代码如下:

String handleStr=str;
//先判断字符里是否含有逗号
if(str.contains(",")){
    //如果还有双引号,先将双引号转义,避免两边加了双引号后转义错误              
    if(str.contains("\"")){
        handleStr=str.replace("\"", "\"\"");
    }
    //将逗号转义  
    handleStr="\""+handleStr+"\"";  
}

此时,导出为csv文件不会出现错位问题。如下:

image.png

在读取一行中的各个数据时,每读取一个需加逗号。

 String rowStr = sb.append(handleStr).append(",").toString();

基本解决了我遇到的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容