记得早在 C 和 C++ 中就都有真接“判断一个字符串是否全为数字”的函数,
可是在C#中怎么也找不着了,这些小而有用的东东怎么可能被忽略呢,不可能,
应该是小弟学艺不精,
故发想来此征集C#中“判断一个字符串是否全为数字”最为简短而高率的方法!!
可是在C#中怎么也找不着了,这些小而有用的东东怎么可能被忽略呢,不可能,
应该是小弟学艺不精,
故发想来此征集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"); //不含有数字}
{
int.Parse(str);
}
catch
{
MessageBox.Show("n"); //不是数字
}
{
try
{
Convert.ToInt(number);
return true;
}
catch
{
return false;
}
}
然后调这个方法,返回false就是输入有错误!
{
bool blnIsnum = true;
try
{
int.Parse(str);
}
catch
{
blnIsnum = false;
}
return blnIsnum;
}
我以前也曾试过用正则式 和 异常法来做
但用的正则式中的另一个方法,可没这么简单哦 :( 呵榀,这个不错 :0)
另: 使用 异常 的方法好象不大可取,因为在第一次判断时效率很低,
不仅慢,而且判断时极占CPU!!!!
建议不要使用,以此分享!!
char ch9 = '9';
string s = "....";
for(int i=0; i < s.Length; i++)
{
if (s[i] < ch0 || s[i] > ch9)
return false;
}return true;
使用正则表达式不是最高效的方法
foreach(char c in yourStr)
{
if (s[i] < '0' || s[i] > '9')
return false;
}
return true;
foreach(char c in yourStr)
{
if (c < '0' || c > '9')
return false;
}
return true;
我目前用的是这个,现在感觉有点不伦不类的,郁闷,哈哈哈:bool IsNumber(str)
{
int len = str.Lenth();
for(int index = 0; index < len; index ++)
{
if(!Char.IsNumber(str, index))
return false;
}
return true;
}