将许多空白字符视为单个分隔符

时间:2014-06-12 04:53:50

标签: c# parsing

当方法String.Split(null)在一行中遇到许多空白字符时,它会将每个空白字符视为分隔符。

因此,对于以下字符串a b c d,结果为:

{"a", "b", "c", , , "d"}   // for string[] res = "a b c   d".Split(null);

是否可以将String.Split(null)作为单个分隔符处理许多空格字符?是否有不同的方法可以做到这一点?

是的,有没有一种方法可以实现这个结果:

{"a", "b", "c", "d"}

在我去重新发明轮子之前(编写我自己的方法将多个空白字符转换为单个字符然后使用String.Split(null))我想检查是否有现有方法可以为我执行此操作

2 个答案:

答案 0 :(得分:2)

您需要将此StringSplitOptions.RemoveEmptyEntries添加到Split方法。有一个overload接受此枚举

yourString.Split(null, StringSplitOptions.RemoveEmptyEntries)

答案 1 :(得分:0)

您需要通过StringSplitOptions.RemoveEmptyEntries。这将删除列表中的额外条目。为了保持默认(即空格)分割,你可以继续传递null作为第一个参数,例如:

"a b c   d".Split((char[])null, StringSplitOptions.RemoveEmptyEntries)