修剪字符串中间的几个字符

时间:2015-09-16 01:29:30

标签: c# .net winforms client-server trim

我有一个客户端/服务器程序,客户端将[进程ID,主机名,应用程序名称,文件路径]发送到服务器。现在他们用一个字符串发送。我为每个变量分配了一个唯一的字符

data = "--++" + "  " + "__-_" +processFileName + " " + "--" +processMachinename + " " + ".." + processID + " " + "_--_" + processPath;

,输出将是(例如下面的)

--++  __-_Client_PC (Running) - Microsoft Visual C# 2010 Express --UNICORNV-FA15C8 ..4408 _--_C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\VCSExpress.exe

我已经尝试了Trim,但它会给我一个错误:“对象引用没有设置为对象的实例。”

else if (recvDt.Contains("--++"))
{
   string d = "--++";
   recvDt = recvDt.TrimStart(d.ToCharArray());
   this.Invoke(new rcvData(addToOutput));

   if (recvDt.Contains("__-_"))
   {
       string fn = "__-_";
       fileName = recvDt.Trim(fn.ToCharArray());
       this.Invoke(new rcvData(addToGrid));
   }
   if (recvDt.Contains("--"))
   {
        string m = "--";
        machineName = recvDt.Trim(m.ToCharArray());
        this.Invoke(new rcvData(addToGrid));

    }
    if (recvDt.Contains(".."))
    {
        string di = "..";
        processID = recvDt.Trim(di.ToCharArray());
        this.Invoke(new rcvData(addToGrid));

    }
    if (recvDt.Contains("_--_"))
    {
        string p = "_--_";
        filePath = recvDt.Trim(p.ToCharArray());
        this.Invoke(new rcvData(addToGrid));

     }

    }
   }
  Thread.Sleep(1000);
 }

}

public void addToGrid()
{
   if (fileName != null && fileName != "" && machineName != null && machineName != "" && processID != null && processID != "" && filePath != null && filePath != "")
{
   dataGridView1.Rows.Add(fileName, machineName, processID, filePath);
   fileName = null;
   machineName = null;
   processID = null;
   filePath = null;
}

我应该如何删除这些唯一字符并在dataGridView中显示它们?

2 个答案:

答案 0 :(得分:0)

您可能需要使用Remove代替Trim

所以你的代码看起来应该是这样的

   if (recvDt.IndexOf("__-_") != -1)
   {
       fileName = recvDt.Remove(recvDt.IndexOf("__-_"));
       this.Invoke(new rcvData(addToGrid));
   }

我猜你有这个想法

答案 1 :(得分:0)

我不太明白你为什么这么做(在单独的项目中插入唯一且不同的字符串)但在标题中回答你的问题

  

修剪字符串中间的几个字符

我要么用

  1. String.Indexof(string)查找要搜索的子字符串的索引,并通过从该索引中删除子字符串的末尾来创建新字符串
  2. Regex.Replace(string input, string pattern, string replacement)通过将input替换为pattern
  3. ,从replacement字符串创建新字符串