当我用C#编程时,使用Split功能:
string[] singleStr=str.Split(';');
str是column111.dwg&186&0;
为什么singleStr.Length=2
?为什么通过数组给出一个数组为null?
答案 0 :(得分:3)
我不确定desStr
是什么样的,但听起来你需要使用StringSplitOptions.RemoveEmptyEntries
返回值不包含包含空的数组元素 串
string str = "column111.dwg&186&0;";
string[] singleStr = str.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in singleStr)
{
Console.WriteLine(item);
}
仅输出;
column111.dwg&186&0
这里有 demonstration
如果我们在这种情况下不使用StringSplitOptions.RemoveEmptyEntries
,singleStr
数组有2个项目; column111.dwg&186&0
和""
答案 1 :(得分:1)
如果您不想要空条目,请使用以下结构:
string[] singleStr=str.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries);
答案 2 :(得分:1)
基本上,在数组中有两个项是正确的,因为你的字符串中有一个分号。
Split方法的原型之一允许您将SplitStringOptions
设置为RemoveEmptyEntries
例如:
var parts = yourString.Split( new []{';'}, SplitStringOptions.RemoveEmptyEntries);
答案 3 :(得分:1)
使用此:
string[] singleStr=str.Split(new[]{';'}, StringSplitOptions.RemoveEmptyEntries);
它将删除null
和空字符串,如空格和其他
回答你的问题:
数组长度为2,因为Split看到:column111.dwg&186&0;
并在;
上进行拆分并得到:
column111.dwg&186&0
和;
之后只有null
字符串
答案 4 :(得分:1)
如果您想忽略空条目,请尝试使用
String.Split Method (Char[], StringSplitOptions)
返回包含此字符串中子字符串的字符串数组 由指定的Unicode字符数组的元素分隔。 参数指定是否返回空数组元素。
StringSplitOptions Enumeration
RemoveEmptyEntries:
返回值不包含包含空的数组元素 串
答案 5 :(得分:1)
这是因为它在找到“;”的任何地方拆分字符串在字符串中,因为你的“;”导致空条目在字符串的末尾。
您可以使用以下调用删除emtpy条目:
str.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);