在字符串中的 “ 上拆分
本文关键字:拆分 字符串 | 更新日期: 2023-09-27 18:32:19
所以我有这个CSV文件,它的内容是这样的......
"Name","Age","Gender","City, State"
到目前为止,我已经成功地删除了所有地方的双引号 - 除了带有以下代码的第一个和最后一个条目。
using (StreamReader reader = new StreamReader(outputReport))
{
headers = reader.ReadLine().Split(new string[] { "'",'"" },
StringSplitOptions.RemoveEmptyEntries);
}
这将生成一个字符串数组,其内容为:
'"Name
Age
Gender
City, State'"
我已经多次尝试删除'"
包括将其添加到我的拆分标准中:
String.Concat('''',''"')
而这个:
"'''""
但是似乎没有任何效果,我觉得我应该能够在 Split 方法中删除这些。这是一个棘手的字符串。有什么想法吗?感谢您的帮助!
不要使用 String.Split()
来读取 CSV 数据!
边缘情况太多。你刚刚在这里触及了冰山一角。此外,它比需要的要慢得多。您需要一个专用的 CSV 解析器。框架中内置了一个(Microsoft.VisualBasic.FileIO.TextFieldParser
),您可以下载和使用几个,包括FastCSV
和我自己的EasyCSV
。
试试这个:s.Replace(@""",","~").Replace(@"""","~").Split('~');
其中s是csv行读取的字符串值。
您可以按字符"(双qoute),'(逗号)和/(斜杠)进行拆分。试试这个:
using (StreamReader reader = new StreamReader(outputReport))
{
char [] splitByCharSet = new char[3]{''"', '''', ','};
headers = reader.ReadLine().Split(splitByCharSet, StringSplitOptions.RemoveEmptyEntries);
}