在字符串中的 “ 上拆分

本文关键字:拆分 字符串 | 更新日期: 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);
        }