网站首页 > 基础教程 正文
在C#中没有函数可以直接判断一个字符串是不是数字的,于是就有大神们想出来了各种方法,是否好用不做评价,能解决问题就行。
下面使用一个例子来做测试,自写一个isnumber函数,返回true是数字格式,返回false则不是。
string msg=txt_msg.Text.Trim().ToString();
if (isNumber(msg))
{
MessageBox.Show("数字格式");
}
else
{
MessageBox.Show("不是数字格式");
}
强制转换
强制转换就是靠try的出错消息来判断是不是数字,比如你想转换成int,在try中如果能成功转换就不会出错,如果出错了,则说明无法转换成int,简单粗暴,但觉得不好。
public bool isNumber(string msg)
{
try
{
Convert.ToInt32(msg);
return true;
}
catch (Exception ex)
{
return false;
}
}
我们输入123,返回true,输入123.5,返回false,是因为它只对是不是能转换成整型做了判断,带小数的字符串在转换成整形时会出错,那就修改下代码,看能否转换成带精度的,适应性更好一些。
public bool isNumber(string msg)
{
try
{
Convert.ToDecimal(msg);
return true;
}
catch (Exception ex)
{
return false;
}
}
修改以后这下就没有问题了。
TryParse方法
不管是int还是decimal,它的tryParse方法都会返回一个bool值,如果是true就转换成功了,这个是相当的简洁。
public bool isNumber(string msg)
{
return decimal.TryParse(msg, out decimal num);
}
就是不知道它的原理是怎么实现的
IsDigit方法
这是一个不常用的方法,一般常见于c语言中,它用来判断一个字符是不是十进制的数字,当然对于有小数点的,它会认为不是数字,需要特别的处理一下,在c#中也有char.IsDigit方法,返回一个bool值。
public bool isNumber(string msg)
{
bool result = true;
foreach (char c in msg)
{
if (char.IsDigit(c) || c == '.')
{
}
else
{
return false;
}
}
return result;
}
如果有人输入多个小数点的话,它还是会认为这是一个数字格式。
哪种方法好用还是得看自己的习惯了。
猜你喜欢
- 2025-04-06 核对2列数据是否一致?这6种方法,总有一个适合你
- 2025-04-06 c语言判断回文数字(c语言如何判断回文数字)
- 2025-04-06 文字数字混合字符串如何分别提取文字和数字,10种方法汇集
- 2025-04-06 js数字(Number)方法汇总(js中的number函数)
- 2025-04-06 数据取整,获取字符串前数字另辟蹊径之LOOKUP
- 2025-04-06 Excel 如何判断某单元格里是否包含某个字符
- 2025-04-06 (每天一道C语言)||统计字符串中的数字字符并作为整数输出
- 2025-04-06 如何判断 Excel 每个单元格中是否包含某个字?
- 2025-04-06 有很多人问我,怎么来对比这个单元格是否包含某个字符
- 2025-04-06 C语言 统计字符串中数组、字母、符号、空格出现的数量
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)