在写程序时,经常要判断输入的数据是否为数字,或带符号的数字。在网上查了一些方法,很多朋友提供的方法都要用到正则式, 由于我对正则式的用法很不熟悉,所以自制了一个函数来代替是否为数字的判断功能。只是没有测量判断的速度是多少。#region 判断字符串是否为数字 /// <summary> /// 判断字符串是否为数字 /// </summary> /// <param name="strval">要判断的字符串</param> /// <returns>如果字符串是数字,返回true;如果不是数字,返回false</returns> public static bool IsNumber(string strval) { bool tmpIsOk = true; //定义一个数字和符号的字符串数组,相当于一个正则式 string[] regEx = { "+", "-", ".", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; char[] strs = strval.ToCharArray(); //将要检查的数字字符串转换为 char 数组 for (int strIndex = 0; strIndex < strs.Length; strIndex++) { char tmpStr = strs[strIndex]; for (int regExIndex = 0; regExIndex < regEx.Length; regExIndex++) { if (tmpStr.ToString() != regEx[regExIndex]) { tmpIsOk = false; } else { tmpIsOk = true; //如果要检查的字符与regEx中的任一一个字符相等, break; //那么退出此次循环。 } } //如果要检查的字符与regEx中的任一一个字符都不相等,那么说明要检查的字符串中有不是数字的字符。 if (tmpIsOk == false) { break; } } return tmpIsOk; } #endregion