来自winform中的文本框我将用户输入作为csv,我将它们放入字符串数组中,我通过该数组迭代创建一些具有名字和姓氏的对象。
if(txtAuthors.Text != string.Empty)
{
if(txtAuthors.Text.Contains(","))
{
if (authorsInput.Count() > 0)
{
foreach (string name in authorsInput)
{
name.TrimStart();
string[] firstAndLastName = name.Split(' ');
string fname = firstAndLastName[0];
string lname = firstAndLastName[1];
}
}
}
}
问题是只有第一个作者在第一个逗号之前添加(fname和lname)而其他只有lastname。所以我试过你可以看到修剪名称以从数组成员中删除空格但问题仍然是相同的。
我在这里做错了什么?
更新:现在可以使用了
string[] firstAndLastName = name.TrimStart().Split(' ');
但我仍然不知道为什么这不起作用
name.TrimStart();
string[] firstAndLastName = name.Split(' ');
答案 0 :(得分:2)
你可以使用Trim()剪切
之前和之后的所有空格
'fname = fname.Trim();'
答案 1 :(得分:2)
调用name.TrimStart()
不会导致变量name
没有初始空白,因为strings are immutable objects。
您无法就地修改字符串。您始终需要将操作结果分配给新字符串。
您的第二个选项有效,因为它类似于:
string newname = name.TrimStart();
string[] firstAndLastName = newname.Split(' ');
另外,请注意我使用新变量作为TrimStart的结果。如果您在foreach循环中执行此操作,则必须执行此操作,因为不允许更改foreach iteration variable