我有以下表达式:
"<p>What ?</p>\n<pre>Starting Mini</pre>"
当我执行如下拆分时:
var split = content
.Split(new[] { "<pre>", "</pre>" }, StringSplitOptions.None);
然后它给了我三个条目:
"<p>What ?</p>\n"
"Starting Mini"
""
为什么它在第三个条目中给出一个空行,我该如何避免这种情况?
最佳答案
“原因”很简单:输入(如果您不删除空条目)将始终在出现分隔符时“拆分”,因此如果分隔符出现 n
次,则数组长度为 n+1
。特别是,这实际上让您知道它们在原始字符串中的位置(尽管使用多个分隔符时,它不会让您知道哪个出现在何处)。
例如,一个简单的例子(没有任何转义的 csv 等):
string[] arr = input.Split(','); // even if something like "a,b,c,d,"
// which allows...
int numberOfCommas = arr.Length - 1;
string original = string.Join(",", arr);
如前所述,解决方法是使用 RemoveEmptyEntries
。
关于c# - 为什么 C# split 给我一个以空行结尾的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776916/