यह रेगेक्स ओवरहेड नहीं है
double myNum = 0;
String testVar = "Not A Number";
if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}
संयोग से, सभी मानक डेटा प्रकार, GUIDs के आकर्षक अपवाद के साथ, TryParse का समर्थन करते हैं।
अपडेट
सीकवैप लाया गया कि मान "2345", उपरोक्त परीक्षण को एक संख्या के रूप में पारित करेगा। हालांकि, यदि आपको यह सुनिश्चित करने की आवश्यकता है कि स्ट्रिंग के भीतर सभी वर्ण अंक हैं, तो एक और दृष्टिकोण लिया जाना चाहिए।
उदाहरण 1 :
public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
return value;
}
या यदि आप एक छोटे से अधिक फैंसी बनना चाहते हैं
public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}
अपडेट 2 (शून्य या खाली तारों से निपटने के लिए @stackonfire से)
public Boolean IsNumber(String s) {
Boolean value = true;
if (s == String.Empty || s == null) {
value=false;
} else {
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
} return value;
}