如何检查我的字符串是否只包含数字?
我不记得了。有什么像isnumeric?
答案 0 :(得分:61)
只需检查每个角色。
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);
}
答案 1 :(得分:10)
答案 2 :(得分:7)
int.TryParse()方法将返回false
答案 3 :(得分:5)
你的问题不明确。字符串中是否允许.
?允许¼
吗?
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);
答案 4 :(得分:3)
如果你想使用Regex,你必须使用这样的东西:
string regExPattern = @"^[0-9]+$";
System.Text.RegularExpressions.Regex pattern = new System.Text.RegularExpressions.Regex(regExPattern);
return pattern.IsMatch(yourString);
答案 5 :(得分:2)
public bool IsNumeric(string str)
{
return str.All(c => "0123456789".Contains(c);
}
答案 6 :(得分:0)
你鳕鱼喜欢那样:
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;
}
答案 7 :(得分:-2)
我有一个解决方案......即使我是一个小小的"晚了。 它是这样的:
try
{
double test = Convert.ToDouble(string);
}
catch(Exception e)
{
MessageBox.show("String contains non numeric characters!");
}
我知道只有在需要时才会使用try-catch,因为效率稍微低一点,但如果效率不是问题,你可以选择这个。 干杯!