我想从一个字符串中删除所有特殊字符,允许的字符是 A-Z(大写或小写)、数字 (0-9)、下划线 (_) 或点号 (.)。
我有以下代码,它可以工作,但我怀疑(我知道!)它不是很有效率:
public static string RemoveSpecialCharacters(string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if ((str[i] >= '0' && str[i] <= '9')
|| (str[i] >= 'A' && str[i] <= 'z'
|| (str[i] == '.' || str[i] == '_')))
{
sb.Append(str[i]);
}
}
return sb.ToString();
}
最高效的方式是什么?正则表达式应该怎样写?与普通字符串操作相比有何优劣之处?
需要清理的字符串通常很短,长度一般在10到30个字符之间。