我正在尝试使用“?”拆分字符串 作为分隔符。我的代码从 CSV 文件中读取数据,并且 C# 无法识别某些符号(如分数),因此我试图用相关的数据(在本例中为债券优惠券)替换它们。我在以下代码中有打印语句(嵌入在带有索引变量 i 的循环中)来测试输出:
string[] l = lines[i][1].Split('?');
//string[] l = Regex.Split(lines[i][1], @"\?");
System.Console.WriteLine("L IS " + l.Length.ToString() + " LONG");
for (int j = 0; j < l.Length; j++)
System.Console.WriteLine("L["+ j.ToString() + "] IS " + l[j]);
if (l.Length > 1)
{
double cpn = Convert.ToDouble(lines[i][12]);
string couponFrac = (cpn - Math.Floor(cpn)).ToString().Remove(0,1);
lines[i][1] = l[0].Remove(l[0].Length-1) + couponFrac + l[1]; // Recombine, replacing '?' with CPN
}
问题是拆分方法 (string.Split()
和Regex.Split()
) 产生的结果不一致,行中的某些字符串元素正确拆分,而其他字符串元素根本不拆分(因此问号仍在字符串中)。
有什么想法吗?我看过关于拆分方法的类似帖子,但它们并没有太大帮助。