我想从字符串中删除所有特殊字符.允许的字符是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个字符之间.
我有以下输入:
string txt = "                   i am a string                                    "
我想从开始和从字符串结束删除空格.
结果应该是:  "i am a string"
我怎样才能在c#中做到这一点?
我有一个字符串,我必须从中删除以下字符:'\ r','\n'和'\ t'.我尝试了三种不同的方法来删除这些字符并对它们进行基准测试,以便我可以获得最快的解决方案.
以下是我运行1000000次的方法和执行时间:
如果我要删除1或2个字符,它应该是最快的解决方案.但随着我投入更多的焦炭,它开始需要更多的时间
str = str.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty);
执行时间= 1695
对于1或2个char,这比String.Replace慢,但是对于3个char它表现出更好的性能.
string[] split = str.Split(new char[] { '\t', '\r', '\n' }, StringSplitOptions.None);
str = split.Aggregate<string>((str1, str2) => str1 + str2);
执行时间= 1030
最慢的,即使是1个字符.也许我的正则表达不是最好的.
str = Regex.Replace(str, "[\r\n\t]", string.Empty, RegexOptions.Compiled);
执行时间= 3500
这些是我提出的三种解决方案.有没有更好更快的解决方案,这里的任何人都知道,或者我可以在此代码中做任何改进?
我用于基准测试的字符串:
StringBuilder builder = new StringBuilder();
        builder.AppendFormat("{0}\r\n{1}\t\t\t\r\n{2}\t\r\n{3}\r\n{4}\t\t\r\n{5}\r\n{6}\r\n{7}\r\n{8}\r\n{9}",
         "SELECT ",
         "[Extent1].[CustomerID] AS [CustomerID], ",
         "[Extent1].[NameStyle] AS [NameStyle], ",
         "[Extent1].[Title] AS [Title], ",
           "[Extent1].[FirstName] AS [FirstName], ",
           "[Extent1].[MiddleName] AS [MiddleName], ",
           "[Extent1].[LastName] AS [LastName], ", …抱歉,如果它们对C#Asp.Net不太实用,我希望让我明白我有这种情况
string content = ClearHTMLTags(HttpUtility.HtmlDecode(e.Body));
content=content.Replace("\r\n", "");
content=content.Trim();
((Post)sender).Description = content + "...";            
我会确保字符串不包含内容或空格(Trim),并且没有回车符换行,我使用上面插入的代码但它不能很好地工作
有什么建议??
非常感谢法布里
我正在尝试做的是我正在尝试将空格大小减少到1个字符(删除任何不需要的空格.我该如何处理任务?
PS.:没有正则表达式
编辑:谢谢,已经成功,感谢分裂+加入建议.不幸的是,无法提出任何回应,因为沮丧的青少年已经 - 因为询问"对于网站而言过于简单的问题"而感到沮丧
编辑2:如果有一个空格,我如何确保它不会删除句子前面的空格?