如何用“,”拆分字符串,其中“是要拆分的字符串的一部分。
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 “”“
答案 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();