[英]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.