如何使用 java 消除 excel 中的文本分隔符

how to eliminate text delimiter in excel using java

我的 csv 文件包含竖线分隔符,csv 中的数据如下所示,

ID| Name|   details
 1|   xx|     {
                "user":"xx",
                 "email":"xxx@xxx.in"
         }

如果我在记事本中编辑 csv,值显示为,

 1|xx|"{
""user"":""z"",
""email"":""e""
}"|"

在我的程序中,我根据竖线分隔符拆分值。问题是,当我从 csv 获取详细信息的值时,它在每个值后附加了额外的分隔符 ("),这导致我的程序失败。

任何人都可以提供一种解决方案来消除额外的分隔符并只获得我在 csv 中提供的准确值吗?

阅读一行后:

line.replaceAll( "\"", "" );

仅当您的数据中没有任何引号时才有效。否则,它会更复杂 - 解析。

(当然,我指的是我们之前看到的代码片段,当行读取没有以包含结尾 '}' 的行结束时。)

如果你想保留一个报价,

line.replaceAll( "\"\"", "\"" );

我不确定尾随 }"|" - 为什么它不在第一个数据样本中?当然,您可以使用 substring 简单地丢弃最后 3 个字符。

如果您通过以下方式检查组中的最后一行:

if( inline.endsWith( "}\"|\"" ) ){
    inline = "}\"";
}

现在这三个字都没有了,就知道那组完蛋了。然后,删除其他引号,或将双引号替换为单引号。

第三个字段也将用引号引起来。您可以使用

删除这些
String[] cells = line.split( "|" );
cells[2] = cells[2].substring( 1, cells[2].length()-2 );

// and now double quotes to single quotes
cells[2] = cells[2].replaceAll( "\"\"", "\"" );