C#を使用して文字列から大文字や特殊文字を削除するには、小文字から変換文字列

StackOverflow https://stackoverflow.com/questions/4041022

  •  27-09-2019
  •  | 
  •  

質問

私は、ユーザーIDとログインフォームを開発しています。私は、ユーザーが指定した形式でユーザーIDを作成します。私は大文字にすべて小文字に変換するためにC#を使用する方法が必要になります。ユーザーIDは、次のfomatになります。 形式は次のとおりです。

XYZ \ t4z4567(文字は大文字と小文字を区別しません)

ルールます:

1.Only特殊文字は、\ユーザー名を作成するときに許可されています。 2.ユーザIDをuppercase.likeに変換することsholud(XYZ - > XYZ) 私は、ユーザーがユーザーIDを作成しながら、任意の特殊文字を入力するかどうかを確認する必要があります。特別なcharctersがユーザーIDである場合の方法は、特殊文字を削除しneedshold、大文字lettrsにすべて小文字に変換する必要があります。

最終的に結果は次のようにする必要があります:

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;
}
役に立ちましたか?

解決

を使用する次の正規表現の置き換えます:

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

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

他のヒント

使用 "yourstring" .ToUpper() そしてあなたは「yourstring」.Replace()は特殊文字を削除するために使用することができます。

IF((C> = 'A' && C <= 'Z')||(C> = '0' && C <= '9')|| C == '\')まず、ストリング。 TOUPPER()は、あなたの大文字を取得します。

新しい文字列の中で、

あなたがいずれかの文字列やコピーによる正規表現またはループを使用することになり、のすべてのの特殊文字「A-Z」を取り除くためにと「/」。この彼らが何であるかを知らなくても、他のすべての文字が出てフィルターます。

例えばます。

        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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top