2012-10-12 18 views
15

है, मैं एक ऐसा फ़ंक्शन ढूंढ रहा हूं जो चरित्र को जांच सके और यह कुछ ऐसा हो।यह जांचने के लिए कि क्या चरित्र एक पूर्णांक

char a = '1'; 

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

साइड नोट: यदि आप "interger" की जरूरत है आप पर विचार करना चाहिए (अंकों के अनुक्रम के रूप में - वहाँ इस तरह जोड़ी चरित्र), "अंक" (0-9 कई भाषाओं में) या "एक संख्या" (1/2, ...) –

उत्तर

5

Integer.TryParse अच्छी तरह से काम करता है।

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

+1

गैर-अंकों के पात्रों के लिए न्यूमेरिक रिटर्न 'सत्य': http://stackoverflow.com/questions/228532/difference-between-char-isdigit- और-char-isnumber-in-c-sharp –

+0

पूर्णांक के लिए +1.TryParse – Rab

+0

IsNumber के बारे में सिर के लिए धन्यवाद, मुझे इसके बारे में पता नहीं था। मैं इसे अपने उत्तर से हटा दूंगा। क्या आपको पता है कि इंटीजर। ट्राईपर्स गैर-अंकों के पात्रों के लिए एक ही चीज़ करता है? – lhan

27

उपयोग System.Char.IsDigit विधि

+1

+1 IsDigit और IsNumber दोनों के लिए +1। ध्यान दें कि न तो यह गारंटी देता है कि चरित्र "पूर्णांक" है क्योंकि IsDigit का अर्थ है कि यह संभावित रूप से लंबे पूर्णांक के अंकों पर है, IsNumber फ्लोट किया जा सकता है (यानी 1/2)। –

+1

IsDigit 0-9 और अन्य वर्ण सेटों में समकक्ष को कवर करता है, और हमेशा एक वर्ण के लिए एक पूर्णांक होता है (लंबी स्ट्रिंग के लिए, Integer.TryParse का उपयोग करें)। IsNumber 0-9 के साथ-साथ "संख्या, अन्य" और "संख्या, पत्र" समूहों जैसे ½ (वह 1 वर्ण) में कुछ और दिलचस्प यूनिकोड वर्णों के लिए सत्य लौटाता है http://www.fileformat.info/info/unicode /category/No/list.htm – lgaud

+0

IsDigit इन सभी पात्रों के लिए सच हो जाएगा; 0-9 के अलावा उन्हें int.ryry के माध्यम से इंटीग्रर्स के रूप में पार्स नहीं किया जाएगा। अंग्रेजी मशीन पर डिफ़ॉल्ट संस्कृति सेटिंग्स के साथ - http://www.fileformat.info/info/unicode/category/Nd/list.htm – lgaud

0

Char.IsNumber की कोशिश करो। दस्तावेज़ीकरण और उदाहरण here

2

System.Char.IsDigit विधि का उपयोग करने का प्रयास करें।

0

स्विच स्विच का उपयोग करना बेहतर हो सकता है। कुछ ऐसा:

switch(a) 
{ 
    case '1': 
    //do something. 
    break; 
    case '2': 
    // do something else. 
    break; 
    default: // Not an integer 
    throw new FormatException(); 
    break; 
} 

यह तब तक काम करेगा जब तक आप केवल 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 सीमा के बाहर कुछ पात्रों के लिए सच वापसी:

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

संबंधित मुद्दे