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; }
}} (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|