如何在c#中用字符串中的多个引号分隔字符串

时间:2011-04-11 07:24:38

标签: c#

如何用“,”拆分字符串,其中“是要拆分的字符串的一部分。

         string[] stringSeparator = new string[] {","};
            while (!sr.EndOfStream) {
                string strline = sr.ReadLine();
                string[] _values = strline.Split(stringSeparator, StringSplitOptions.None);

                for (int entry = 0; entry < _values.Length; entry++) {
                    MessageBox.Show(_values[entry]);
                }
            }

试图使用“”,“”但它似乎返回整行,而不仅仅是它的一部分。

编辑:

要拆分的字符串(示例):

第一行:

  

“24446022020000000174234443”, “PLN””, “” NVESTMENT   SOMETHING   “”, “” 2011-03-06 “”, “” 2011-03-07 “” “” - 25,21 “”“

第二行:

  

“1”, “E”” “” 2011-03-04 “”, “” 2011-03-07 “”, “” 2011-03-07 “”, “” 1.00 “”, “” 0000000100000001 “”, “” UZNANIE   sdsd   万应灵药 “”, “” 45555550040000001244580001 “”, “” 有的   客户(E)KLIENT   NR:0000000100000001 “”, “” 例如   东西 “”, “” 73116022447246000100000001 “”“

4 个答案:

答案 0 :(得分:3)

如果要在字符串中表示文字引号,则需要将其转义(或在逐字字符串文字中加倍)。

即,

new string[] { "\",\"" };
//or
new string[] { @""",""" };

至于为何获得所获得的价值,请考虑您输入的方式:

string[] stringSeparator = new string[] { "," };

是一个包含单个字符串的字符串数组,只是一个逗号,。它会分裂,但你可能没有得到你期望的值。

string[] stringSeparator = new string[] { "","" };

是一个包含两个字符串的字符串数组,两个字符串都是空的(空白)字符串。如果它被输入为new string[] { "", "" };,也许会更清楚。 Split()函数忽略空字符串分隔符,因此它不会拆分任何内容。

string[] stringSeparator = new string[] { "\",\"" };

是一个包含单个字符串的字符串数组,双引号逗号双引号","。它可以让你在字符串","之间获得所有内容。

答案 1 :(得分:1)

尝试

char[] delimiters = new char[] { ',', '"' };
string[] parts = value.Split(delimiters,
                 StringSplitOptions.RemoveEmptyEntries);

答案 2 :(得分:1)

首先修剪然后拆分以除去所有引号。

string[] stringSeparator = new string[] {"\",\""};
while (!sr.EndOfStream) 
{

    //trim removes first and last quote since they are not removed by the split
    string line = sr.ReadLine().Trim('"');
    string[] values = line.Split(stringSeparator, StringSplitOptions.None);

    for (int index = 0; index < values.Length; index++)
        MessageBox.Show(values[index]);
}

答案 3 :(得分:0)

string strline = sr.ReadLine();              
string[] abc = strline.Split('"');
abc = Array.FindAll(abc, val => val != ",").ToArray();
string result[] = Array.FindAll(abc, val => val != "").ToArray();
相关问题