static void Main(string[] args)
{
string Var = ",A,,,B,,C";
string[] members = Var.Split(',');
foreach (string member in members)
{
Console.WriteLine(member);
}
Console.WriteLine(members.Length);
Console.ReadLine();
}
上述代码的输出是
A
B
C
7
7 is length of the array
,但我的问题是,当我通过','
时
在分裂函数的参数中。
所以为什么它需要初始','作为空格。为什么它需要3'中的2','作为A之后的空间。为什么它需要2'中的1','作为B之后的空间?
答案 0 :(得分:2)
你问的答案是,这不是空格,但这是空字符串
string
可以为空,您将此视为空格。
,,
< - ,
我们什么都没有,所以split方法添加空字符串。
如果您要删除此内容,则必须在','
StringSplitOptions
Var.Split(new char [] {','}, StringSplitOptions.RemoveEmptyEntries);
doc:https://msdn.microsoft.com/pl-pl/library/tabh47cf(v=vs.110).aspx
答案 1 :(得分:0)
/ 对于此问题,只有“split()”函数计数。我们可以赋予任何特殊字符来分割数组元素。 注意:它不适用于单引号和双引号等特殊字符 /
string Var = "-%%A-,,$$,-B-@@%-C";
string[] members = Var.Split('-',',','@','$','%');
foreach (string member in members)
{
Console.WriteLine(member);
}
Console.WriteLine(members.Length);
Console.ReadLine();
图像显示输出控制台屏幕:
答案 2 :(得分:-1)
因为你在第一个'之前有空格',并且因为B和C之间只有一个占位符?