[英]remove whitespace from string
从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)以及其他仅姓氏。 因此,我已经尝试了修剪名称以从数组成员中删除空格的问题,但问题仍然相同。
我在这里做错了什么?
更新:这现在有效
string[] firstAndLastName = name.TrimStart().Split(' ');
但我仍然不知道为什么这不起作用
name.TrimStart();
string[] firstAndLastName = name.Split(' ');
您可以使用Trim()剪切前后的所有空格
'fname = fname.Trim();'
调用name.TrimStart()
不会导致没有初始空格的变量name
,因为字符串是不可变的对象 。
您不能就地修改字符串。 您始终需要将运算结果分配给新字符串。
您的第二个选项有效,因为它类似于:
string newname = name.TrimStart();
string[] firstAndLastName = newname.Split(' ');
另外,请注意,我对TrimStart的结果使用了新变量。 如果在foreach循环中执行此操作,则这是必需的,因为不允许更改foreach iteration variable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.