gpt4 book ai didi

java - 对 CSV 特殊字符使用临时占位符是一种不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 06:01:05 25 4
gpt4 key购买 nike

我正在处理大量具有多种不同格式的 CSV 文件,并且通常由普通用户手工编写,因此有很多 ; , \n\t 等字段内的字符,这种字符通常会在解析数据或生成新的 CSV 文件时造成麻烦,我通常会事先删除这些字符,但是今天我在旧程序中发现了以下代码:

它从 resultSet 中读取数据,并将每个值连接到 String 中以形成一行,并处理分隔符(我们通常使用 ;) code>),此代码首先使用像 #TempSeparator# 这样的临时标志来划分每个字段,然后,当该行完成时,应用 replaceAll(";","") 删除假分隔符,然后使用 replaceAll("#TempSeparator#", ";") 形成有效行

我实际上认为这是一种聪明的方法,可以避免对每个字段进行不必要的调用,并且只对整行进行替换,但我不认为这是最好的甚至是最佳的方法。

这真的是一种不好的做法吗?

最佳答案

这并不是非常坏,但也不是最好的方法。

尽可能使用标准库。 Here is a list优秀的库,其中 SuperCSV 在支持 CSV 变体方面尤其强大。这些库遵循最佳实践:在字段内使用特殊字符时会进行转义,或者将字段换行(通常用引号括起来)。

如果 CSV 格式已经错误,导致字段中出现特殊字符而没有正确转义或换行,那么您将遇到数据清理问题,需要通过其他方式解决。用临时占位符替换该字符并不能解决这个问题,因为占位符同样会出现在字段内部和字段之间。

关于java - 对 CSV 特殊字符使用临时占位符是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59050615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com