C#(IsNumeric) 字符串转换为数字的几种方法

判断C#中的字符串是否是数字,如果是转换成int类型

1.通过正则表达式(可以判断正数和负数)

a)
public int IsNumeric(string str)
{
int i;
if(str != null && System.Text.RegularExpressions.Regex.IsMatch(str,@"^-?/d+$"))
i = int.Parse(str);
else
i = -1;
return i;
}

b)
using System;
using System.Text.RegularExpressions;

public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}

c)
public static bool IsNumeric(string value)
{
return Regex.IsMatch(value, @"^[+-]?/d*[.]?/d*$");
}
public static bool IsInt(string value)
{
return Regex.IsMatch(value, @"^[+-]?/d*$");
}
public static bool IsUnsign(string value)
{
return Regex.IsMatch(value, @"^/d*[.]?/d*$");
}


2.通过字符
///
/// 判断是否是数字
///
/// ///
private bool IsNumeric(string number)
{
try
{

for(int i=0;i {
if(number[i]<'0'||number[i]>'9')
{
return false;
}
}
return true;
}
catch
{
return false;
}
}
3.通过char.IsNumber方法
/// 判断是否是数字
///
/// ///
private bool IsNumeric(string number)
{
try
{

for(int i=0;i {
if(!char.IsNumber(number,i))
{
return false;
}
}
return true;
}
catch
{
return false;
}
}
4.通过try,catch
/// 判断是否是数字
///
/// ///
private bool IsNumeric(string number)
{
try
{
int.Parse(number);
return true;
}
catch
{
return false;
}
}

5.通过 ASCIIEncoding

///
/// 判断是否是数字
///
/// 字符串 ///
public static bool IsNumeric(string str)
{
if (str == null || str.Length == 0 || str == string.Empty)
return false;
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
byte[] bytestr = ascii.GetBytes(str);
foreach (byte c in bytestr)
{
if (c < 48 || c > 57)
{
return false;
}
}
return true;
}
本文来源于
yaosansi'Blog

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值