2011-02-08 5 views
2

選択されたテキストに文字が含まれている場合や番号以外の何かがある場合に基づいてアクションを実行するには、アプリケーションが必要です。C#数字と文字

文字列が文字か数字かを確認するにはどうすればよいですか?

とても簡単ですが、このコードを書くことはできません。

+0

でこれを実現することができて、あなたはそれが唯一の文字が含まれているかどうかを確認したいか、それは数字だけが含まれている場合に行ってください、より具体的な? – magnattic

+0

@atticae - わかりにくいですが、私たちの答えの中で、彼はおそらく彼が使うことのできるものを見つけるでしょう。 –

答えて

3

あなたはこのようにそれをやろうとすることができる。代わりに、このロジックを使用して、あなたは文字列が一つ以上の数字ではなく、すべての数字が含まれているかどうかを確認したい場合は

string myString = "100test200"; 
long myNumber; 
if(long.TryParse(myString, out myNumber){ 
    //text contains only numbers, and that number is now put into myNumber. 
    //do your logic dependent of string being a number here 
}else{ 
    //string is not a number. Do your logic according to the string containing letters here 
} 

if (myString.Any(char.IsDigit)){ 
    //string contains at least one digit 
}else{ 
    //string contains no digits 
} 
+0

long.Parseは、数値が2より大きい場合に失敗します。^ 63 – Manu

+0

@Manu - この場合、彼は私の2番目のアプローチを使用することができます。私の最初のアプローチは、彼が何かのために実際に番号を使用する必要がある場合、私は彼が数字の中に手紙があるかどうかを調べようとしているからだと思います:) –

+0

ありがとう。それは私が探していたものでした。しかし、myStringがそれが文字であると考えると分かりにくい場合、別の問題があります。 –

2
static bool IsNumeric(string str) 
{ 
    foreach(char c in str) 
    if(!char.IsDigit(c)) 
     return false; 
    return true; 
} 
+3

または 'str.All(char.IsDigit);'の略語;) –

1

あなたが正規表現

string str = "1029"; 
if(Regex.IsMatch(str,@"^\d+$")){...}