2012-10-12 14 views
15

文字が整数であるかどうかを確認できる関数を探しています。文字が整数かどうかを確認する方法

char a = '1'; 

if (Function(a)) 
{ 
    do something 
} 
+0

サイドノート:あなたは "interger" を必要とする場合は、(数字のシーケンスとして - このようなカップルの文字があります)を検討すべきである、 "数字"(0-9 –

答えて

5

Integer.TryParseが良好に機能します。

http://msdn.microsoft.com/en-us/library/f02979c7.aspx

+1

IsNumericは、非数字の文字に対して「true」を返します:http://stackoverflow.com/questions/228532/difference-between-char-isdigit- and-char-is-c-sharp-in-c-sharp –

+0

+1の整数。解説 – Rab

+0

IsNumberについてのお礼をいただき、ありがとうございました。私は私の答えからそれを削除します。 Integer.TryParseが非数字の文字に対して同じことをしているかどうか知っていますか? – lhan

27

使用System.Char.IsDigit方法

+1

IsDigitとIsNumberの両方に+1します。 IsDigitは単にそれが潜在的により長い整数の桁上にあることを意味し、IsNumberは浮動小数点(すなわち1/2)である可能性があるので、文字が「整数」であることを保証しない。 –

+1

IsDigitは、0〜9およびそれ以外の文字セットの同等の文字をカバーし、1文字の場合は常に整数です(長い文字列の場合はInteger.TryParseを使用します)。 IsNumberは、0〜9だけでなく、 "Number、Other"、および "Number、Letter"のような、より興味深いUnicode文字の場合は、1/2文字(1文字)のようにtrueを返します。http://www.fileformat.info/info/unicode /category/No/list.htm – lgaud

+0

これらの文字すべてに対してIsDigitはtrueを返します。 0-9以外のものはint型で解析されることはありません。英数字のデフォルトカルチャ設定を持つTryParse - http://www.fileformat.info/info/unicode/category/Nd/list.htm – lgaud

0

Char.IsNumberを試してみてください。ドキュメントと例はありませんhere

2

System.Char.IsDigitメソッドを試してみてください。

0

switch文を使用する方が良いかもしれません。次のようなものがあります:

これは、文字0-9だけを探している限り機能します。それ以上のもの(「10」と言う)は文字列であり、文字ではありません。

try 
{ 
    Convert.ToInt32("10") 
} 
catch (FormatException err) 
{ 
    // Not an integer, display some error. 
} 
11

あなただけの純粋な0-9数字をしたい場合は、

if(a>='0' && a<='9') 

IsNumericを使用する:あなたはいくつかの入力が整数であり、入力が文字列で、あなたが行うことができるかどうかを確認しようとしている場合そしてIsDigit両方が0-9の範囲外のいくつかの文字のためにtrueを返す:

Difference between Char.IsDigit() and Char.IsNumber() in C#

0

bool Char.IsDigit(char c);メソッドはこのインスタンスに対して完全に動作するはずです。

char a = '1'; 

if (Char.IsDigit(a)) 
{ 
    //do something 
} 
0

最も簡単な答え:char.isDigit(char)

0
char a = '1'; // use var instead of char if a built-in-type 

if (char.IsNumber(a)) 
{ 
    do something 
} 
+0

へようこそスタックオーバーフロー。その中のコードだけの回答は、「低品質」なので削除のフラグが立てられがちです。質問への回答についてのヘルプセクションを読んで、あなたの答えにいくつかの解説を加えることを検討してください。 – Graham

関連する問題