首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

[散分]分享一个检拆字符串是否为数字的方法

2012-08-31 
[散分]分享一个检测字符串是否为数字的方法散分,散分为了让大家得到技术分,分享一个检测字符串是否为数字

[散分]分享一个检测字符串是否为数字的方法
散分,散分

为了让大家得到技术分,分享一个检测字符串是否为数字的方法

上代码

C# code
public static bool IsNumber(this string input)        {            if (string.IsNullOrEmpty(input))                 return false;            //i : 计数器(记录共有多少个.)            //j : 起始校验位置            //m : 字符串长度            int i = 0, j = 0, m = input.Length;             if (input[m - 1] == '.') //任何以.结尾的字符串都不是数字                return false;            if (input[0] == '+' || input[0] == '-')            {                j = 1;  //如果第一位为+或者-,那么将从第2为开始检测                if (m == 1) return false; //如果此时字符串的长度为1,那么不是数字            }            if (input[j] == '0')             {                if (m > j)                    if (input[j + 1] != '.') return false; //如果开始检测位是0,不是末位,那么下一位如果不是.   则不是数字            }            for (; j < m; j++)            {                if (input[j] == '.')                    i++;                else                {                    if (input[j] < 48 || input[j] > 57)                        return false;                }            }            if (i > 1) return false; //如果多于1个. 则不是数字            return true;        }


发现的Bug的将得到较多的分,呵呵呵

[解决办法]
谢谢楼主分享~
JF
[解决办法]
int.TryParse ()方法也可以啊。呵呵 接分...
[解决办法]
楼主这么好心,我就不客气了..呵..
顺便学习一下..
[解决办法]
谢谢楼主分享

[解决办法]
帮顶,接分
[解决办法]
谢谢分享
[解决办法]
谢谢分享
[解决办法]
顶这个..好长时间没看到分享了
[解决办法]
探讨
引用:
int.TryParse ()方法也可以啊。呵呵  接分...


呵呵,这个会有异常的,而且有时候我只是想判断它是否为数字,而不是进行类型转换.

[解决办法]
谢谢分享
[解决办法]
恩,不错,用正则也是可以的。
[解决办法]
探讨
引用:
int.TryParse ()方法也可以啊。呵呵  接分...


呵呵,这个会有异常的,而且有时候我只是想判断它是否为数字,而不是进行类型转换.

[解决办法]
up...接分...
[解决办法]
不用搞这么麻烦,直接使用Int32或Double的TryParse()就行了。
TryParse 方法在转换失败时不引发异常。

下面是Int32.TryParse()的输入参数
s 参数包含一个如下形式的数字: 

[ws][sign]digits[ws] 

方括号([ 和 ])中的项是可选的;其他项的值如下所示。

ws 
可选的空白。 

sign 
一个可选符号。 

digits 
一系列从 0 到 9 之间的数字。


下面是Double.TryParse()的输入参数
s 参数可以包含 PositiveInfinitySymbol、NegativeInfinitySymbol、NaNSymbol 或以下形式的字符串: 

[ws][sign]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws] 

可选项括在方括号([ 和 ])中。包含“digits”一词的项由一系列从 0 到 9 之间的数字字符组成。

ws 
一系列空白字符。 

sign 
负号或正号。 

integral-digits 
指定数字整数部分的一系列数字。整数位组可以用组分隔符分开。(例如,在某些区域性中,用逗号 (,) 作为千位分隔符。)有小数位时可以没有整数位。 



'.' 
区域性特定的小数点符号。 

fractional-digits 
指定数字小数部分的一系列数字。 

“e” 
大写或小写字符“e”,表示指数(科学型)表示法。 

exponential-digits 
指定指数的一系列数字。 

s 的示例包括“100”、“-123,456,789”、“123.45e+6”、“+500”、“5e2”、“3.1416”、“600”、“-.123”和“负无穷大”。




[解决办法]

探讨
10楼的头像好大胆

[解决办法]
up
[解决办法]
探讨
引用:
10楼的头像好大胆


我喜欢大胆的。。哈哈

[解决办法]
感觉分享
[解决办法]
检测按键也可以
[解决办法]
楼主好精神。
[解决办法]
谢谢分享
[解决办法]
先接分再看
[解决办法]
接分看看了!
[解决办法]
javascript: if(event.keyCode==8 || event.keyCode==46 ||event.keyCode>=35 && event.keyCode<=39){}
[解决办法]
谢谢分享
[解决办法]
11楼号代码!,赞
学习
[解决办法]
我们可以用正则来检测和判断么?我是个菜鸟,问一下。!~呵呵。!~JF
[解决办法]
应该是double.tryparse()吧,呵呵。
[解决办法]
为什么不用正则?
不是正则效率高吗?
老大经常骂我们把验证写成那样。
[解决办法]
谢谢楼主分享,顺便帮顶
[解决办法]
帮 顶.
[解决办法]
JF
[解决办法]
学习有得分!太好了!!
[解决办法]
牛人
[解决办法]
接分
[解决办法]
楼主建议你用正则表达式
[解决办法]
谢谢分享!
[解决办法]
我都是这么判断的诶 
public static bool IsNumber(this string input)

try
{
int i=Int32.Parse(input);
return true;
}
catch (FormatException ex)
{
return false;

}
[解决办法]
来接分了!
[解决办法]
老兄,用正则一句话搞定的.你写这么复杂.
[解决办法]
public static bool IsNumber(this string input)
{return Regex.IsMatch(input,@"^\d+$")}



[解决办法]
bug是没发现,就是发现一个不足(也算一个较大的bug吧)
还有科学记数法的字符串不能识别,不知道楼主能不能改进一下e.g : (1.2e?4)
[解决办法]
jf,

C# code
我用using Microsoft.VisualBacsic;要单独添加引用才能调用下面的方法Information.IsNumberic(str);
[解决办法]
呵呵
[解决办法]
楼主结贴吧,多给2楼点。呵呵
[解决办法]
JF
[解决办法]
探讨
10楼的头像好大胆

[解决办法]
学习了。只不过我个人觉得啊。像你这样去写的话。怎么不去一个正则表达式。实现呢。这只是我个人的想法啊。
[解决办法]
收藏
[解决办法]
接分了
[解决办法]
接分接分啦~
[解决办法]
方法很多,如正则,JS,intTryPrse
function checkIsInteger(str)
{
if(str == "")
return true;
var exp = /^\s*[-\+]?\d+\s*$/;
if (str.match(exp) == null)
return false
else
return true;
}
int i=0;
if(int.Try("",out i))
{
}
[解决办法]
方法很多,如正则,JS,intTryPrse 
function checkIsInteger(str) 

if(str == "") 
return true; 
var exp = /^\s*[-\+]?\d+\s*$/; 
if (str.match(exp) == null) 
return false 
else 
return true; 

int i=0; 
if(int.Try("",out i)) 

}
[解决办法]
javascript要那么麻烦吗?
用isNaN()
[解决办法]
JF
[解决办法]
C# code
string str = "05485a1";try{  int.parse(str);  console.write("Is Number");}catch(Exception e){  console.write("Is Not Number");}? ?
[解决办法]
晕 我问了个问题 给了50分 问题都解决了 没人回答我要结贴 谁去帮我回答了东西 50分就给你了啊 晕 速度啦 零回答的第一页 倒数第六个左右 晕 速度啦~~
[解决办法]
探讨
C# codestring str="05485a1";try
{int.parse(str);
console.write("Is Number");
}catch(Exception e)
{
console.write("Is Not Number");
}

? ?

[解决办法]
jf
[解决办法]
javascript里面使用isNaN
后台代码使用double.Parse
[解决办法]
学习 LZ好人啊
[解决办法]
谢谢啦,进来学习
[解决办法]
谢谢分享啊,不过就是太麻烦了。效率怎么样?

热点排行
Bad Request.