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 に答える