【问题标题】:Remove whitespaces when storing to an array存储到数组时删除空格
【发布时间】:2012-09-04 02:17:47
【问题描述】:

测试代码:

string files = "C:\Hello; C:\Hi; D:\Goodmorning; D:\Goodafternoon; E:\Goodevening";
string[] paths = files.Split(';');

foreach (string s in paths)
{
    MessageBox.Show(s);
}

如何在将空格存储到数组之前删除空格?

【问题讨论】:

  • 使用 List 更好吗?

标签: c# arrays trim


【解决方案1】:

.NET 2.0

string[] paths = Array.ConvertAll(files.Split(';'), a => a.Trim());

.NET 3.5

string[] paths = files.Split(';').Select(a => a.Trim()).ToArray();

【讨论】:

    【解决方案2】:

    你可以使用String.Trim方法,像这样:

    foreach (string s in paths)
    {
        MessageBox.Show(s.Trim());
    }
    

    或者,您可以在输入paths 之前消除空格,如下所示:

    files.Split(new[]{';', ' '}, StringSplitOptions.RemoveEmptyEntries);
    

    【讨论】:

      【解决方案3】:

      没关系,我解决了..

      我的代码:

      string files = "C:\Hello; C:\Hi; D:\Goodmorning; D:\Goodafternoon; E:\Goodevening";
      string[] paths = files.Trim().Split(';');
      List<string> cleanPath = new List<string>();
      
       int x = 0;
       foreach (string s in paths)
       {
           cleanPath.Add(s.Trim());
       }
      
       foreach(string viewList in cleanPath)
       {
            x++;
            MessageBox.Show(x + ".)" +viewList);//I put x.) just to know whether it still has whitespace characters.
       }
      

      【讨论】:

        【解决方案4】:

        怎么样:

        string[] paths = Regex.Split(files, @";\W+");

        当然,RegEx 也有一些额外的灵活性。

        【讨论】:

          【解决方案5】:

          你可以使用这个 PHP 函数: $var = str_replace(" ", "", $var);

          【讨论】:

          • Trim 比较适合这种情况,入口中间可能有空格。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多