我正在尝试删除保留字符但在调用我的函数后它返回相同的输入..
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();
}
答案 0 :(得分:3)
在您的代码中,您没有更新变量CAMERA
(说实话,您不能这样做,因为字符串是不可变的),但是您从函数text
返回一个新字符串。目前,您没有在任何地方使用返回值,因此该值实际上已丢失。
为了使您的代码正常工作,您需要将变量文本分配给函数的结果:
remove
答案 1 :(得分:3)
Chang这条线
remove(text);
到
text = remove(text);
因为你的函数会返回一个新的string
(由StringBuilder
构建),而你只是在没有得到结果的情况下调用它。