如何在此代码中使用StringBuilder进行while循环

时间:2012-12-04 15:04:31

标签: c# stringbuilder

如何在此代码中使用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);
        }

逻辑是从字符串

中删除命令数据

1 个答案:

答案 0 :(得分: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());

但你必须要注意格式化。

我希望这会有所帮助。