簡體   English   中英

如何反轉包含空格和特殊字符的字符串

[英]How can I reverse string which contains spaces and special characters

包含空格和特殊字符的字符串反向。 如何在不使用正則表達式的情況下實現這一目標?

輸入: "M @#.AD()/A?#M"

輸出: "MADAM"

這是一個單行:

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

這段代碼應該可以正常工作:

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);

刪除除字符串(單詞)之外的所有內容。

"[^0-9a-zA-Z]+"

這是第二個版本,但我認為您應該在這種情況下使用 Regex。

您可以將特殊字符保存在字符串數組中,並使用Contains詢問它們是否存在於字符串中。

代碼:

string n = "M @#.AD()/A?#M";
string[] chars = new string[] {"?", " ", ",", ".", "/", "!", "@", "#", "$", "%", "^", "&", "*", "'", "\"", ";", "_", "(", ")", ":", "|", "[", "]" };
//Iterate the number of times based on the String array length.
for (int i = 0; i < chars.Length; i++)
{
      if (n.Contains(chars[i]))
      {
           n = n.Replace(chars[i], "");
      }
}
// To reverse the string
string backwards = new string(n.Reverse().ToArray());
Console.WriteLine(backwards);

我想到的解決方案之一:

    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();

結果是“上帝”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM