日期:2014-05-20 浏览次数:20469 次
public static class Common { //isDigit public static bool isNumberic1(this string _string) { if (string.IsNullOrEmpty(_string)) return false; foreach (char c in _string) { if (!char.IsDigit(c)) return false; } return true; } //vb isnumberic public static bool isNumberic2(this string _string) { return !string.IsNullOrEmpty(_string) && Microsoft.VisualBasic.Information.IsNumeric(_string); } //try parese public static bool isNumberic3(this string _string) { if (string.IsNullOrEmpty(_string)) return false; int i = 0; return int.TryParse(_string, out i); } //try catch public static bool isNumberic4(this string _string) { if (string.IsNullOrEmpty(_string)) return false; int i = 0; try { int.Parse(_string); } catch { return false; } return true; } //regex public static bool isNumberic5(this string _string) { return !string.IsNullOrEmpty(_string) && Regex.IsMatch(_string, "^\\d+$"); } }
class Program
{
static void Main(string[] args)
{
Test("1234");
Test("1234a");
Test("a1234");
Test("");
Test(null);
}
static void Test(string str)
{
bool res1 = false, res2 = false, res3 = false, res4 = false, res5 = false;
Stopwatch wat = new Stopwatch();
wat.Start();
for (int i = 1; i < 100000; i++)
{
res1 = str.isNumberic1();
}
wat.Stop();
Console.WriteLine("isDigit {0}:{1},{2}", str, wat.ElapsedMilliseconds, res1);
wat.Reset();
wat.Start();
for (int i = 1; i < 100000; i++)
{
res2= str.isNumberic2();
}
wat.Stop();
Console.WriteLine("isNumberic {0}:{1},{2}", str, wat.ElapsedMilliseconds, res2);
wat.Reset();
wat.Start();