吨alt text http://i43.tinypic.com/2rpfjth.png
它不会返回我的预期。 我期待的是: AB 出租车 AB
我在做错了什么?答案 0 :(得分:7)
不要做.ToCharArray()
它会分裂\ r然后\ n
为什么你有空值
这样的事情应该起作用
var aa = ("a" & Environment.NewLine & "b" & Environment.NewLine & "c").Split(New String[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
答案 1 :(得分:6)
由于你要拆分“\ r”和“n”,String.Split
从“\ r \ n”中提取空字符串。
查看StringSplitOptions.RemoveEmptyEntries
或使用new String[] { "\r\n" }
代替"\r\n".ToCharArray()
。
答案 2 :(得分:1)
您只需使用\r
或\n
分隔字符串作为分隔符,而不是\r\n
。
答案 3 :(得分:1)
Environment.NewLine可能是要走的路,但如果没有,
var ab = "a\r\nb\r\nc";
var abs = ab.Split(new[]{"\r\n"}, StringSplitOptions.None);
答案 4 :(得分:0)
此选项也有效, string [] b = Regex.Split(abc,“\ r \ n”);
答案 5 :(得分:0)
我的理解是,您为Split方法提供的字符串char序列是一个分隔符字符列表,而不是由多个字符组成的单个分隔符。
在您的情况下,Split将'\ n'和'\ n'字符视为分隔符。因此,当遇到'\ r \ n'序列时,它会返回这两个分隔符之间的字符串,即空字符串。