为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中删除特殊字符的最有效方法

从字符串中删除特殊字符的最有效方法

C#
千万里不及你 2019-10-14 15:29:35
我想从字符串中删除所有特殊字符。允许的字符是AZ(大写或小写),数字(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个字符之间。
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

我建议创建一个简单的查找表,您可以在静态构造函数中对其进行初始化,以将任意字符组合设置为有效。这使您可以快速进行一次检查。


编辑


另外,为了提高速度,您将需要将StringBuilder的容量初始化为输入字符串的长度。这将避免重新分配。这两种方法共同为您提供速度和灵活性。


另一个编辑


我认为编译器可能会对其进行优化,但是考虑到样式和效率,我建议使用foreach而不是for。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 524 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信