我在嘗試使用'?'拆分字符串。作爲分隔符。我的代碼從CSV文件讀取數據,某些符號(如分數)不被C#識別,因此我試圖用相關數據(本例中爲債券優惠券)替換它們。我在下面的代碼打印語句(其被嵌入在具有索引變量i的循環)來測試輸出:Regex.Split和string.Split按預期工作
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()
)產生不一致的結果與一些行中的字符串元素正確分裂,其他字符串根本不分裂(因此問號仍在字符串中)。
有什麼想法?我在拆分方法上看過類似的帖子,他們沒有太大的幫助。
你有一個字符串的具體例子,你期望從split()方法得到的結果嗎? –
@ C.Evenhuis例如,字符串「TII 0?04/15/15」在「TII 0?01/15/22」被拆分並適當地重新組合爲「TII 0.125 01/15/22」時不分割。 – Erroldactyl
我懷疑你有什麼是文本編碼問題。這些問號不是真正的問號,而是因爲沒有正確加載字體而顯示不正確的字符。數據來自哪裏? –