如何检查我的字符串是否只是数字

我如何检查我的字符串是否只包含数字?

我不记得了。 有什么像isnumeric?

只需检查每个角色。

bool IsAllDigits(string s) { foreach (char c in s) { if (!char.IsDigit(c)) return false; } return true; } 

或者使用LINQ。

 bool IsAllDigits(string s) { return s.All(char.IsDigit); } 

如果要知道输入到程序中的值是否表示有效的整数值(在int范围内),可以使用TryParse() 。 请注意,此方法与检查字符串是否仅包含数字不同。

 bool IsAllDigits(string s) { return int.TryParse(s, out int i); } 

您可以使用Regex或int.TryParse 。

另请参见C#等效VB的IsNumeric()

对于非数字字符串,int.TryParse()方法将返回false

你的问题不明确。 是的. 允许在字符串? 是否允许¼

 string source = GetTheString(); //only 0-9 allowed in the string, which almost equals to int.TryParse bool allDigits = source.All(char.IsDigit); bool alternative = int.TryParse(source,out result); //allow other "numbers" like ¼ bool allNumbers = source.All(char.IsNumber); 

如果你想使用正则表达式,你将不得不使用这样的东西:

 string regExPattern = @"^[0-9]+$"; System.Text.RegularExpressions.Regex pattern = new System.Text.RegularExpressions.Regex(regExPattern); return pattern.IsMatch(yourString); 
 public bool IsNumeric(string str) { return str.All(c => "0123456789".Contains(c); } 

鳕鱼喜欢这样:

 public bool IsNumeric(string val) { if(int.TryParse(val)) return true; else if(double.TryParse(val)) return true; else if(float.TryParse(val)) return true; else return false; } 

你可以写一个这样的函数:

 public bool isStringIsNumeric(string strValue) { int iValue = 0; bool canConvert = int.TryParse(strValue, out iValue); if (int.TryParse(strValue, out iValue)) return true; else return false; } 

我有一个解决方案……即使我迟到了“小”。 它是这样的:

 try { double test = Convert.ToDouble(string); } catch(Exception e) { MessageBox.show("String contains non numeric characters!"); } 

我知道try-catch仅在需要时使用,因为它需要一点效率,但如果效率不是问题,你可以使用它。 干杯!