2011-12-15 10 views

答えて

2

このalreadを行いシャアクラス内の関数がありますy。

string name = "ajsbbc"; 

    if (Char.IsLetter(name[name.Length - 1])) 
     Console.WriteLine("True"); 
    else 
     Console.WriteLine("False"); 
+0

これはA-Za-z以上にマッチします。これはCafé '" Caf \ u00e9 "// U + 00E9 LATIN SMALL LETTER E WITH ACUTE'に対して真を書きますが、カフェ' Cafe \ u0301 "// U + 0301 ACUTE ACCENTを組み合わせる"グラフェンを扱うことができる解決法については、http://stackoverflow.com/questions/2056866/enumerating-a-string-by-grapheme-instead-of-characterを参照してください。 –

0

あなたはこの機能を使用して、文字列を送信パラメータとして、この

private bool IsAlphabet(string input) 
    { 
     bool alphabet = false; 

     char ch = input[input.Length - 1]; 

     if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) 
      alphabet = true; 

     return alphabet; 
    } 
+0

アジットは – RollerCosta

+0

いくつかの提案(アルファベットを超える状態の場合にaloop適用するために私が意味することは可能です)、あなたは私のために、私はあなたが上記の条件を説明してくださいますし、あなたのknowlwdgeをテストすることはありません。文字列がヌルか空であるかどうかを確認する必要があります。あなたはちょうど返信を言う(ch> = 'a' && ch <= 'z')||(ch> = 'A' && ch <= 'Z'));ローカルbool変数を避けてください。これを拡張メソッドにすることもできます。 – ferosekhanj

1

店あなたの文字列の最後の文字一時文字列で、その後、通常のEXPと
Regex lettersOnly = new Regex("^[a-zA-Z]$");
あなたの一時文字列を確認することができます

  • ^は[-ZA-Z]
  • 「文字列の先頭に一致開始」とカーソルがの終わりにある場合にのみ一致」
  • $手段「AZ小文字と大文字に一致」を意味します文字列」
    トライそれは(私はそれが動作している場合わからない)
+0

^を削除すれば、文字列をあらかじめ解析して最後の文字を取得する必要はありません。 –

3

ここでは、正規表現のソリューションです:

Regex.IsMatch(name, "[a-zA-Z]$"); 
+0

しかし、このragexが最後の文字だけをチェックする方法 – RollerCosta

+0

$は文字列の最後を示すので、 '[a-zA-Z]'に一致するものがあれば、テスト対象の文字列は'[a-zA-Z]' –

関連する問題