繁体   English   中英

从字符串中删除空格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM