将字符串从小写转换为大写,并使用C#从字符串中删除特殊字符

时间:2010-10-28 08:26:45

标签: c# uppercase

我正在开发一个包含用户ID的登录表单。我希望用户以指定的格式创建用户标识。我需要一个使用C#将所有小写字母转换为大写的方法。用户标识将位于以下fomat中。 格式为:

xyz \ t4z4567(字符不区分大小写)

规则:

1.创建用户名时只允许使用特殊字符\。 2. UserID sholud转换为大写.like(xyz - > XYZ) 我需要检查用户在创建用户标识时是否输入任何特殊字符。如果UserID中有任何特殊字符,则方法needshold删除特殊字符,并将所有小写字母转换为大写字母。

最后结果应该是以下方式:

xyz \ t4z45 @ 67 ---> XYZ \ T4Z4567

我使用以下方法检查字符串是否包含以下字符,如果是,我将替换为空。

public string RemoveSpecialChars(string str)
{
   string[] chars = new string[] { ",", ".", "/", "!", "@", "#", "$", "%", "^", "&", "*", "'", ";", "-", "_", "(", ")", ":", "|", "[", "]" };

    for (int i = 0; i < chars.Length; i++)
    {
        if (str.Contains(chars[i]))
        {
            str = str.Replace(chars[i], "");
        }
    }

    return str;
}

3 个答案:

答案 0 :(得分:7)

使用以下正则表达式替换:

outputStr = System.Text.RegularExpressions.Regex.Replace(inputStr, @"[^a-zA-Z0-9_\\]", "").ToUpperInvariant();  

输入:inputStr=@"xya\t4z567"
输出:"XYA\T4Z567"

答案 1 :(得分:2)

使用“yourstring”.ToUpper() 你可以使用“yourstring”.Replace()删除特殊字符。

答案 2 :(得分:0)

if((c> ='A'&amp;&amp; c&lt; ='Z')||(c&gt; ='0'&amp;&amp; c&lt; ='9')|| c =='\')首先,string.ToUpper()获取大写字符。

要删除所有特殊字符,您可以使用正则表达式或循环遍历字符串,并将“A-Z”和“/”复制到新字符串中。这会过滤掉所有其他角色而无需知道它们是什么。

E.g。

        string invalid = @"as@bc3423*%*%ihh";
        string upper = invalid.ToUpper();
        string result = string.Empty;

        foreach (char c in upper)
        {
            if ((c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '\\')                    
            result += c;
        }

        Console.WriteLine(result);