不能删除保留字符

本文关键字:字符 保留字 保留 删除 不能 | 更新日期: 2023-09-27 18:01:23

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

        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();
        }

不能删除保留字符

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

为了使你的代码工作,你需要将变量text赋值给函数的结果:

text = remove(text);

修改这一行

remove(text);

text = remove(text);

因为你的函数返回一个新的string(从StringBuilder构建),你只是调用它而没有获得结果。