C# 删除字符串中的空白
从winform内部的文本框中,我将用户输入作为csv,并将它们放入字符串数组中,在该数组中迭代,以创建具有名字和姓氏的对象C# 删除字符串中的空白,c#,.net,C#,.net,从winform内部的文本框中,我将用户输入作为csv,并将它们放入字符串数组中,在该数组中迭代,以创建具有名字和姓氏的对象 if(txtAuthors.Text != string.Empty) { if(txtAuthors.Text.Contains(",")) { if (authorsInput.Count() > 0) { foreach (string name in authorsInput) {
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(' ');
可以使用Trim()在前后剪切所有空格'fname=fname.Trim();' 可以使用Trim()在前后剪切所有空格
'fname=fname.Trim();' 调用
name.TrimStart()
不会导致变量name
没有初始空格,因为。不能在位修改字符串。您始终需要将操作结果分配给新字符串 第二个选项有效,因为它类似于:
string newname = name.TrimStart();
string[] firstAndLastName = newname.Split(' ');
另外,请注意,我使用了一个新变量作为TrimStart的结果。如果您在foreach循环内执行此操作,则需要执行此操作,因为不允许更改调用
name的。TrimStart()
不会导致变量name
没有初始空格,因为。不能在位修改字符串。您始终需要将操作结果分配给新字符串 第二个选项有效,因为它类似于:
string newname = name.TrimStart();
string[] firstAndLastName = newname.Split(' ');
另外,请注意,我使用了一个新变量作为TrimStart的结果。如果您在foreach循环内执行此操作,则需要执行此操作,因为不允许更改