我有一个CSV文件(我没有设计过,现在无法更改,也永远无法更改),该文件包含以下行:
"Surname, Firstname", yes, no, somestring, whatever, etc
如您在这里看到的那样,第一个,不是我要在其上分割字符串的逗号。请注意,此特殊逗号用引号引起来。

因此,一个简单的string.split(',')显然不起作用,因为上面的字符串给我一个长度为7的数组,而不是6。

有办法解决这个问题吗?我当时在考虑使用正则表达式来分割字符串,但是我对正则表达式的能力不够强,无法想到仅对未用引号引起来的逗号进行分割的模式。

我可以想到通过逐个字符地读取每个字符串来实现此目的的丑陋,笨拙的方法,但这将是万不得已的方法,因为我敢肯定有更好的方法可以做到这一点!

最佳答案

我知道这里有很多人认为不应该逐个字符地进行比较,并且会强烈反对我,但是我不相信像Microsoft这样的公司并不是唯一应该进行这种编程的公司。

毕竟,Split会逐个字符地进行比较,因此,当您调用不能完全满足您期望的现有代码时,为什么它这么丑陋呢?

无论如何,我的方法是编写自己的代码。而且我已经将代码在线发布在http://www.blackbeltcoder.com/Articles/files/reading-and-writing-csv-files-in-c上。

10-08 09:02
查看更多