2010-03-31 87 views

回答

7

不做.ToCharArray()

它会分裂\ r然后\ n

这就是为什么你有空值

这样的事情应该工作

var aa = ("a" & Environment.NewLine & "b" & Environment.NewLine & "c").Split(New String[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries); 
6

由于您正在分割“\ r”和“n”,因此String.Split会从“\ r \ n”中提取空字符串。

看看StringSplitOptions.RemoveEmptyEntries或使用new String[] { "\r\n" }而不是"\r\n".ToCharArray()

1

您只需使用\r\n作为分隔符将字符串拆分,而不是将\r\n拼接在一起。

0

此选项也有效, string [] b = Regex.Split(abc,“\ r \ n”);

1

Environment.NewLine可能是要走的路,但如果没有这个工程

var ab = "a\r\nb\r\nc"; 
var abs = ab.Split(new[]{"\r\n"}, StringSplitOptions.None); 
0

我的理解是,您提供给拆分方法的字符串字符序列的分隔符列表,而不是单一的分隔符由几个字符组成。

就你而言,Split认为'\ r'和'\ n'字符是分隔符。所以当遇到'\ r \ n'序列时,它会返回这两个分隔符之间的字符串,一个空字符串。