2

私の教授は Re​​gEx の使用を許可してくれないので、ループを使用して文字列の各文字をチェックすることに行き詰まっています。サンプルコード/アルゴリズムを持っている人はいますか?

public void setAddress(string strAddress)
{
    do
    {
        foreach (char c in Name)
        {
            if ( /*check for characters*/ == false)
            {
                Address = strAddress;
            }
        }
        if ( /*check for characters*/ == true)
        {
            Console.Write("Invalid!");
        }
    } while ( /*check for characters*/ == true)
}
public int getAddress()
{
    return Address;
}

文字と数字だけを含める必要があります。!@#$%^& などの文字は使用できません。彼がまだ私たちにそれを教えていないので、私は正規表現を使用することを許可されていません...まあ、彼がこれらのループと文字チェックを教えた日にクラスに出席できなかったので、彼はそれ以上教えてくれません. とにかく、正規表現を使用しないより効率的な方法があれば、それは役に立ちます。

4

4 に答える 4

5
        string s = @"$KUH% I*$)OFNlkfn$";
        var withoutSpecial = new string(s.Where(c => Char.IsLetterOrDigit(c) 
                                            || Char.IsWhiteSpace(c)).ToArray());

        if (s != withoutSpecial)
        {
            Console.WriteLine("String contains special chars");
        }

ループなしでそれを行うことができます:)

ソース: https://stackoverflow.com/a/4503614/1714342

編集:

if(s.Any(c=>c => !Char.IsLetterOrDigit(c) || !Char.IsWhiteSpace(c))
{
    Console.WriteLine("String contains special chars");
}
于 2013-07-29T05:55:02.147 に答える
0
bool check_for_characters(char c)
{
 return (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
}
于 2013-07-29T07:08:46.920 に答える