"\v"
是兩個字符,而不是一個,在原始的字符串(這是不計算\
作爲轉義字符作爲文字C#字符串一樣)。
你需要在字面"\v"
分裂,這意味着你需要指定拆分的,需要一個字符串超載:
string[] split = narrative.Split(new string[] {"\\v"}, StringSplitOptions.None);
注意我是如何與逃脫「\」字符「\\」
您的是單個控制字符,不是兩個字符。
我認爲你的問題本身有些誤導......
你的榜樣字符串,如果進入到C#將實際工作像你所期望的,因爲在一個verbatum C#字符串\v
將被換到一個特殊字符:
string test = " The objective for test.\vVision\v* Deliver a test goals\v** Comprehensive\v** Control\v* Alignment with cross-Equities strategy\vApproach\v*An acceleration ";
char[] delimiters = new char[] { '\v' };
Console.WriteLine(test.Split(delimiters).Length); // Prints 8
不過,我覺得你的實際字符串確實有反斜槓-v在它,而不是逃脫符\ v:
string test = " The objective for test.\\vVision\\v* Deliver a test goals\\v** Comprehensive\\v** Control\\v* Alignment with cross-Equities strategy\\vApproach\\v*An acceleration ";
char[] delimiters = new char[] { '\v' };
Console.WriteLine(test.Split(delimiters).Length); // Prints 1, like you say you see.
因此,你可以解決它通過使用一個字符串數組來分割字符串上述:
string test = " The objective for test.\\vVision\\v* Deliver a test goals\\v** Comprehensive\\v** Control\\v* Alignment with cross-Equities strategy\\vApproach\\v*An acceleration ";
string[] delimiters = new [] { "\\v" };
Console.WriteLine(test.Split(delimiters, StringSplitOptions.None).Length); // Prints 8
看起來你並不是逃避反斜槓。 –
我運行你的代碼和Length == 8. –