检查字符串是否以特殊字符c#结束

本文关键字:结束 特殊字符 字符串 是否 检查 | 更新日期: 2023-09-27 18:14:53

嗨,我正在寻找一个解决方案,检查出如果字符串以特殊字符结束,如果是,然后删除它。删除特殊字符后的新字符串也不应包含特殊字符。

特殊字符应该在数组[!@#$%&/{()}=?

检查字符串是否以特殊字符c#结束

如何使用String.TrimEnd?此方法专门用于从字符串中删除给定数组中的字符。

var newstr = s.TrimEnd("[!@#$%&/{()}=?+]".ToCharArray());

同样,下面的要求看起来应该使用String.Replace来替换字符串中任何不需要的字符:

删除特殊字符后的新字符串也不应包含特殊字符

在这种情况下,你应该这样做:

string unwanted = "[!@#$%&/{()}=?+]";
for (int i = 0; i < unwanted.Length; i++)
    s = s.Replace(unwanted.Substring(i, 1), "");

从整个字符串中删除所有不需要的字符。

char[] specialArray = {'!', '@', '#', '$', '%', '&', '/', '{', '(', ')', '}', '=', '?', '+'};
for(int i = 0; i < specialArray.length; i++)
{
    if( inputString[inputString.length - 1] == specialArray(i) )
    {
        return inputString.Substring(0, inputString.length - 1);
    }
}

试试这个:

if (text.LastIndexOfAny("!@#$%&/{()}=?+".ToCharArray()) == (text.Length - 1))
    text = text.Substring(0, text.Length - 1);

请注意,这只从末尾删除一个字符,即使在字符串末尾有多个字符。

如果你想从字符串的末尾删除列表中的所有字符,请使用Thorsten的答案。

所以这个答案将把XXXX!!!转化为XXXX!!,而Thorsten的答案将把XXXX!!!转化为XXXX

选择你想要的。:)

这个怎么样

string x = "ASDF[";
var chars = new char [] { '[','!','@','#','$','%','&','/','{','(',')','}','=','?','+',']' };
string newString = x.TrimEnd(chars);
Console.WriteLine(newString);

所以基本上,你只是想删除所有出现的特殊字符(不只是在结尾)?似乎是Regex的工作:

var newString = Regex.Replace("[!@#$%&/{()}=?+]", oldString, "");

用空字符串替换所有字符。如果性能很重要,您可以像

那样预编译Regex
var re = new Regex("[!@#$%&/{()}=?+]");

,然后做

var newString = re.Replace(oldString, "");

注意:我假设,您不是要擦除字符'['']'。如果需要,则将正则表达式更改为

var re = new Regex(@"[!@#$%&/{()}=?+'[']]");