无法删除保留字符?

时间:2015-07-07 19:59:03

标签: c# regex

我正在尝试删除保留字符但在调用我的函数后它返回相同的输入..

        public static void Main(string[] args)
        {
            string text = "erhan?test*.pdf";             

            remove(text);

            Console.WriteLine("This is your result : {0}", text);
            Console.ReadLine();           

        }

         private static string remove(string str){

             StringBuilder sb = new StringBuilder();
             foreach (char c in str)
             {
                 if (Char.IsLetterOrDigit(c) || c == '.' || c == '_' || c == ' ' || c == '%')
                 { sb.Append(c); }
             }
             return sb.ToString();
        }

2 个答案:

答案 0 :(得分:3)

在您的代码中,您没有更新变量CAMERA(说实话,您不能这样做,因为字符串是不可变的),但是您从函数text返回一个新字符串。目前,您没有在任何地方使用返回值,因此该值实际上已丢失。

为了使您的代码正常工作,您需要将变量文本分配给函数的结果:

remove

答案 1 :(得分:3)

Chang这条线

remove(text);

text = remove(text);

因为你的函数会返回一个新的string(由StringBuilder构建),而你只是在没有得到结果的情况下调用它。