C# 如何反转包含空格和特殊字符的字符串

C# 如何反转包含空格和特殊字符的字符串,c#,C#,包含空格和特殊字符的字符串反转。如果不使用正则表达式,如何实现这一点 输入:“M@#AD()/A?#M” 输出:“MADAM”此代码应该可以正常工作: string n = "M @#.AD()/A?#M"; string tmp = Regex.Replace(n, "[^0-9a-zA-Z]+", ""); string backwards = new string(tmp.Reverse().ToArray()); Consol

包含空格和特殊字符的字符串反转。如果不使用正则表达式,如何实现这一点

输入:
“M@#AD()/A?#M”


输出:
“MADAM”

此代码应该可以正常工作:

string n = "M @#.AD()/A?#M";
string tmp = Regex.Replace(n, "[^0-9a-zA-Z]+", "");

string backwards = new string(tmp.Reverse().ToArray());
Console.WriteLine(backwards);
删除除字符串(单词)以外的所有内容

这是第二个版本,但在我看来,您应该使用正则表达式

您可以将特殊字符保存在字符串数组中,并询问它们是否存在于
包含的字符串中

代码:

string n=“M@#AD()/A?#M”;
字符串[]字符=新字符串[]{“?”,“,”,“,”,“,”,“/”,“!”,“@”,“#”,“$”,“%,”,“^”,“&“,“*”,“,”,“\”,“;”,“(”,”,“:”,“|”,“[”,“]);
//根据字符串数组长度迭代次数。
for(int i=0;i
我想到的解决方案之一:

    string input = "D @#.O()/?#G";

    StringBuilder builder = new StringBuilder();

    for (int i = input.Length-1; i >= 0; i--)
    {
        if (Char.IsLetter(input[i]))
        {
            builder.Append(input[i]);
        }
    }

    string result = builder.ToString();
结果是“上帝”。

这里有一句话:

string.Join("", input.Where(char.IsLetter).Reverse()));

您尝试了什么,但什么不起作用?您可以使用另一个字符串吗?这似乎是正则表达式的一个很好的用例-为什么不使用它们呢?首先,您需要从字符串中删除特殊字符,选中此项:。然后是反向,选中此项:作为旁注:使用回文回答反向问题稍微有点c关于融合。我想你误解了这个问题:
如果不使用regex,我怎么能做到这一点?
没有理由不使用regex。事实上,这是一个非常好的答案。是的,sryy没有看到它,我将在5分钟内编辑它。是的,这也是正确的,但我只是有一个特殊情况,我不会使用regex。它对我有效。谢谢。
    string input = "D @#.O()/?#G";

    StringBuilder builder = new StringBuilder();

    for (int i = input.Length-1; i >= 0; i--)
    {
        if (Char.IsLetter(input[i]))
        {
            builder.Append(input[i]);
        }
    }

    string result = builder.ToString();
string.Join("", input.Where(char.IsLetter).Reverse()));