using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace IsNumberTest
{
/// <summary>
/// 几种验证字符串是否全为数字方法的比较
/// </summary>
class Program
{
static void Main(string[] args)
{
Stopwatch sw; //测试运行时间
int times = 50000; //循环次数
string testStr = "12a"; //测试用字符串
#region Regular Expression Method
sw = Stopwatch.StartNew();
Regex regIsNum = new Regex (@"^/d+$");
for (int i = 0; i < times; i++)
{
regIsNum.IsMatch(testStr);
}
sw.Stop();
Console.WriteLine("Regular Expression Method Last Time: " + sw.Elapsed.Milliseconds + " ms");
#endregion
#region VB.NET IsNumeric Method
sw = Stopwatch.StartNew();
for (int i = 0; i < times; i++)
{
Microsoft.VisualBasic.Information.IsNumeric(testStr);
}
sw.Stop();
Console.WriteLine("VB.NET IsNumeric Method Last Time: " + sw.Elapsed.Milliseconds + " ms");
#endregion
#region Customer Method
sw = Stopwatch.StartNew();
for (int i = 0; i < times; i++)
{
IsNum(testStr);
}
sw.Stop();
Console.WriteLine("Customer Method Last Time: " + sw.Elapsed.Milliseconds + " ms");
#endregion
#region Improved Customer Method
sw = Stopwatch.StartNew();
for (int i = 0; i < times; i++)
{
ImpIsNum(testStr);
}
sw.Stop();
Console.WriteLine("Improved Customer Method Last Time: " + sw.Elapsed.Milliseconds + " ms");
#endregion
#region Catch Exception Method
sw = Stopwatch.StartNew();
for (int i = 0; i < times; i++)
{
try
{
int.Parse(testStr);
}
catch
{
//非数字
}
}
sw.Stop();
Console.WriteLine("Catch Exception Method Last Time: " + sw.Elapsed.Milliseconds + " ms");
#endregion
Console.ReadLine();
}
public static bool IsNum(String srcStr)
{
for (int i = 0; i < srcStr.Length; i++)
{
if (!Char.IsNumber(srcStr,i))
return false;
}
return true;
}
public static bool ImpIsNum(String srcStr)
{
for (int i = 0; i < srcStr.Length; i++)
{
if (srcStr[i] <= '0' || srcStr[i] >= '9')
return false;
}
return true;
}
}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。