0

如何在此代码中使用 StringBuilder。

        string strFunc = "data /*dsdsds */ data1 /*sads dsds*/";
        while (strFunc.Contains("/*"))
        {
            int tempStart = strFunc.IndexOf("/*");
            int tempEnd = strFunc.IndexOf("*/", tempStart);

            if (tempEnd == -1)
            {
                tempEnd = strFunc.Length;
            }
            strFunc = strFunc.Remove(tempStart, tempEnd + 1 - tempStart);
        }

逻辑是从字符串中删除命令数据

4

1 回答 1

3

你想做的是像

string strFunc = "data /*dsdsds */ data1 /*sads dsds*/";
Regex reg = new Regex(@"/\*.+?\*/"); 
strFunc = reg.Replace(strFunc, String.Empty);

StringBuilder这里不需要。

但是,要提供一个使用StringBuilder: 的示例来创建一个包含已删除“命令”的字符串,您可以编写

MatchCollection commands = reg.Matches(strFunc);
StringBuilder sb = new StringBuilder();
foreach (Match m in commands)
    sb.Append(m.ToString());

但是您必须注意此处的格式。

我希望这有帮助。

于 2012-12-04T15:19:45.317 回答