这是以前csdn上一个经典的帖子,我当年刚学 .net的时候学习的,不知道有没有朋友有不同意见
Q:怎样判断是数字?
例如:12345--->是数字,
12345t--->不是数字
12345年--->不是数字
非常感谢各位,
我以前也曾试过用正则式 和 异常法来做
但用的正则式中的另一个方法,可没这么简单哦 :( 呵榀,这个不错 :0)
另: 使用 异常 的方法好象不大可取,因为在第一次判断时效率很低,
不仅慢,而且判断时极占CPU!!!!
建议不要使用,以此分享!!
经过查看,考虑,,,第五中效率最高!!!!胜出
A:
一
public static bool StrIsInt(string Str)
{
try
{
Int32.Parse(Str);
return true;
}
catch
{
bool flag = false;
return flag;
}
}
二
C#中有一个类似正则表达式的方法,可以试试
System.Text.RegularExpressions.Regex reg = new Regex("[^0-9]");
if (reg.IsMatch(str)){
////如果不是数字的处理
}
还要有这一句,
using System.Text.RegularExpressions;
三
正则表达式
using System.Text.RegularExpressions;
......
string str;
......
bool yn=Regex.IsMatch(str,@"^[0-9]+$");
if(yn==true)
{
MessageBox.Show("y"); //含有数字
}
else
{
MessageBox.Show("n"); //不含有数字
}
四
private bool CovertInt(string number)
{
try
{
Convert.ToInt(number);
return true;
}
catch
{
return false;
}
}
然后调这个方法,返回false就是输入有错误!
五
>>>判断一个字符串是否全为数字
use a loop (maybe better to use integer comparison)
char ch0 = '0';
char ch9 = '9';
string s = "....";
for(int i=0; i < s.Length; i++)
{
if (s[i] < ch0 || s[i] > ch9)
return false;
}
return true;