亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#判斷一個string是否可以為數字的幾種解決方案

2019-11-17 04:27:10
字體:
來源:轉載
供稿:網友

方案一:Try...Catch(執行效率不高)view plaincopy to clipboardPRint?
/// <summary>  
/// 名稱:IsNumberic  
/// 功能:判斷輸入的是否是數字  
/// 參數:string oText:源文本  
/// 返回值: bool true:是 false:否  
/// </summary>  
/// <param name="oText"></param>  
/// <returns></returns>  
private bool IsNumberic(string oText)  
{  
try 
 {  
int var1=Convert.ToInt32 (oText);  
return true;  
 }  
catch 
{  
return false;  
}  

/// <summary>
/// 名稱:IsNumberic
/// 功能:判斷輸入的是否是數字
/// 參數:string oText:源文本
/// 返回值: bool true:是 false:否
/// </summary>
/// <param name="oText"></param>
/// <returns></returns>
private bool IsNumberic(string oText)
{
try
 {
int var1=Convert.ToInt32 (oText);
return true;
 }
catch
{
return false;
}
}方案二:正則表達式(推薦)
a)view plaincopy to clipboardprint?
using System;  
using System.Text.RegularExpressions;  
 
public bool IsNumber(String strNumber)  
{  
Regex objNotNumberPattern=new Regex("[^0-9.-]");  
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");  
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");  
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";  
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";  
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");  
 
return !objNotNumberPattern.IsMatch(strNumber) &&  
!objTwoDotPattern.IsMatch(strNumber) &&  
!objTwoMinusPattern.IsMatch(strNumber) &&  
objNumberPattern.IsMatch(strNumber);  

using System;
using System.Text.RegularExpressions;

public bool IsNumber(String strNumber)
{
Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");

return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}b)view plaincopy to clipboardprint?
public static bool IsNumeric(string value)  
{  
return Regex.IsMatch(value, @"^[+-]?/d*[.]?/d*$");  
}  
public static bool IsInt(string value)  
{  
return Regex.IsMatch(value, @"^[+-]?/d*$");  
}  
public static bool IsUnsign(string value)  
{  
return Regex.IsMatch(value, @"^/d*[.]?/d*$");  

public static bool IsNumeric(string value)
{
return Regex.IsMatch(value, @"^[+-]?/d*[.]?/d*$");
}
public static bool IsInt(string value)
{
return Regex.IsMatch(value, @"^[+-]?/d*$");
}
public static bool IsUnsign(string value)
{
return Regex.IsMatch(value, @"^/d*[.]?/d*$");
}方案三:遍歷 www.devdao.com
a)view plaincopy to clipboardprint?
public bool isnumeric(string str)  
{  
 char[] ch=new char[str.Length];  
 ch=str.ToCharArray();  
 for(int i=0;i<ch.Length;i++)  
 {  
 if(ch[i]<48 || ch[i]>57)  
 return false;  
 }  
 return true;  

public bool isnumeric(string str)
{
 char[] ch=new char[str.Length];
 ch=str.ToCharArray();
 for(int i=0;i<ch.Length;i++)
 {
 if(ch[i]<48 || ch[i]>57)
 return false;
 }
 return true;
}b)view plaincopy to clipboardprint?
public bool IsInteger(string strIn) {  
bool bolResult=true;  
if(strIn=="") {  
bolResult=false;  
}  
else {  
foreach(char Char in strIn) {  
if(char.IsNumber(Char))  
continue;  
else {  
bolResult=false;  
break;  
}  
}  
}  
return bolResult;  

public bool IsInteger(string strIn) {
bool bolResult=true;
if(strIn=="") {
bolResult=false;
}
else {
foreach(char Char in strIn) {
if(char.IsNumber(Char))
continue;
else {
bolResult=false;
break;
}
}
}
return bolResult;
}c)view plaincopy to clipboardprint?
public static bool isNumeric(string inString)  
{  
inString=inString.Trim();  
bool haveNumber=false;  
bool haveDot=false;  
for(int i=0;i<inString.Length;i++)  
{  
if (Char.IsNumber(inString[i]))  
{  
haveNumber=true;  
}  
else if(inString[i]=='.')  
{  
if (haveDot)  
{  
return false;  
}  
else 
{  
haveDot=true;  
}  
}  
else if(i==0)  
{  
if(inString[i]!='+'&&inString[i]!='-')  
{  
return false;  
}  
}  
else 
{  
return false;  
}  
if(i>20)  
{  
return false;  
}  
}  
return haveNumber;  
}  

public static bool isNumeric(string inString)
{
inString=inString.Trim();
bool haveNumber=false;
bool haveDot=false;
for(int i=0;i<inString.Length;i++)
{
if (Char.IsNumber(inString[i]))
{
haveNumber=true;
}
else if(inString[i]=='.')
{
if (haveDot)
{
return false;
}
else
{
haveDot=true;
}
}
else if(i==0)
{
if(inString[i]!='+'&&inString[i]!='-')
{
return false;
}
}
else
{
return false;
}
if(i>20)
{
return false;
}
}
return haveNumber;
}
}方案四:改寫vb的IsNumeric源代碼(執行效率不高)view plaincopy to clipboardprint?
//主調函數  
public static bool IsNumeric(object Expression)  
{  
 bool flag1;  
 IConvertible convertible1 = null;  
 if (Expression is IConvertible)  
 {  
 convertible1 = (IConvertible) Expression;  
 }  
 if (convertible1 == null)  
 {  
 if (Expression is char[])  
 {  
 Expression = new string((char[]) Expression);  
 }  
 else 
 {  
 return false;  
 }  
 }  
 TypeCode code1 = convertible1.GetTypeCode();  
 if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))  
 {  
 return Utils.IsNumericTypeCode(code1);  
 }  
 string text1 = convertible1.ToString(null);  
 try 
 {  
 long num2;  
 if (!StringType.IsHexOrOctValue(text1, ref num2))  
 {  
 double num1;  
 return DoubleType.TryParse(text1, ref num1);  
 }  
 flag1 = true;  
 }  
 catch (Exception)  
 {  
 flag1 = false;  
 }  
 return flag1;  
}  
 
//子函數  
// return Utils.IsNumericTypeCode(code1);  
internal static bool IsNumericTypeCode(TypeCode TypCode)  
{  
 switch (TypCode)  
 {  
 case TypeCode.Boolean:  
 case TypeCode.Byte:  
 case TypeCode.Int16:  
 case TypeCode.Int32:  
 case TypeCode.Int64:  
 case TypeCode.Single:  
 case TypeCode.Double:  
 case TypeCode.Decimal:  
 {  
 return true;  
 }  
 case TypeCode.Char:  
 case TypeCode.SByte:  
 case TypeCode.UInt16:  
 case TypeCode.UInt32:  
 case TypeCode.UInt64:  
 {  
 break;  
 }  
 }  
 return false;  
}  
   
 
//-----------------  
//StringType.IsHexOrOctValue(text1, ref num2))  
internal static bool IsHexOrOctValue(string Value, ref long i64Value)  
{  
 int num1;  
 int num2 = Value.Length;  
 while (num1 < num2)  
 {  
 char ch1 = Value[num1];  
 if (ch1 == '&')  
 {  
 ch1 = char.ToLower(Value[num1 + 1], CultureInfo.InvariantCulture);  
 string text1 = StringType.ToHalfwidthNumbers(Value.Substring(num1 + 2));  
 if (ch1 == 'h')  
 {  
 i64Value = Convert.ToInt64(text1, 0x10);  
 }  
 else if (ch1 == 'o')  
 {  
 i64Value = Convert.ToInt64(text1, 8);  
 }  
 else 
 {  
 throw new FormatException();  
 }  
 return true;  
 }  
 if ((ch1 != ' ') && (ch1 != '/u3000'))  
 {  
 return false;  
 }  
 num1++;  
 }  
 return false;  
}  
//----------------------------------------------------  
// DoubleType.TryParse(text1, ref num1);  
internal static bool TryParse(string Value, ref double Result)  
{  
 bool flag1;  
 CultureInfo info1 = Utils.GetCultureInfo();  
 NumberFormatInfo info3 = info1.NumberFormat;  
 NumberFormatInfo info2 = DecimalType.GetNormalizedNumberFormat(info3);  
 Value = StringType.ToHalfwidthNumbers(Value, info1);  
 if (info3 == info2)  
 {  
 return double.TryParse(Value, NumberStyles.Any, info2, out Result);  
 }  
 try 
 {  
 Result = double.Parse(Value, NumberStyles.Any, info2);  
 flag1 = true;  
 }  
 catch (FormatException)  
 {  
 flag1 = double.TryParse(Value, NumberStyles.Any, info3, out Result);  
 }  
 catch (Exception)  
 {  
 flag1 = false;  
 }  
 return flag1;  

//主調函數
public static bool IsNumeric(object Expression)
{
 bool flag1;
 IConvertible convertible1 = null;
 if (Expression is IConvertible)
 {
 convertible1 = (IConvertible) Expression;
 }
 if (convertible1 == null)
 {
 if (Expression is char[])
 {
 Expression = new string((char[]) Expression);
 }
 else
 {
 return false;
 }
 }
 TypeCode code1 = convertible1.GetTypeCode();
 if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
 {
 return Utils.IsNumericTypeCode(code1);
 }
 string text1 = convertible1.ToString(null);
 try
 {
 long num2;
 if (!StringType.IsHexOrOctValue(text1, ref num2))
 {
 double num1;
 return DoubleType.TryParse(text1, ref num1);
 }
 flag1 = true;
 }
 catch (Exception)
 {
 flag1 = false;
 }
 return flag1;
}

//子函數
// return Utils.IsNumericTypeCode(code1);
internal static bool IsNumericTypeCode(TypeCode TypCode)
{
 switch (TypCode)
 {
 case TypeCode.Boolean:
 case TypeCode.Byte:
 case TypeCode.Int16:
 case TypeCode.Int32:
 case TypeCode.Int64:
 case TypeCode.Single:
 case TypeCode.Double:
 case TypeCode.Decimal:
 {
 return true;
 }
 case TypeCode.Char:
 case TypeCode.SByte:
 case TypeCode.UInt16:
 case TypeCode.UInt32:
 case TypeCode.UInt64:
 {
 break;
 }
 }
 return false;
}
 

//-----------------
//StringType.IsHexOrOctValue(text1, ref num2))
internal static bool IsHexOrOctValue(string Value, ref long i64Value)
{
 int num1;
 int num2 = Value.Length;
 while (num1 < num2)
 {
 char ch1 = Value[num1];
 if (ch1 == '&')
 {
 ch1 = char.ToLower(Value[num1 + 1], CultureInfo.InvariantCulture);
 string text1 = StringType.ToHalfwidthNumbers(Value.Substring(num1 + 2));
 if (ch1 == 'h')
 {
 i64Value = Convert.ToInt64(text1, 0x10);
 }
 else if (ch1 == 'o')
 {
 i64Value = Convert.ToInt64(text1, 8);
 }
 else
 {
 throw new FormatException();
 }
 return true;
 }
 if ((ch1 != ' ') && (ch1 != '/u3000'))
 {
 return false;
 }
 num1++;
 }
 return false;
}
//----------------------------------------------------
// DoubleType.TryParse(text1, ref num1);
internal static bool TryParse(string Value, ref double Result)
{
 bool flag1;
 CultureInfo info1 = Utils.GetCultureInfo();
 NumberFormatInfo info3 = info1.NumberFormat;
 NumberFormatInfo info2 = DecimalType.GetNormalizedNumberFormat(info3);
 Value = StringType.ToHalfwidthNumbers(Value, info1);
 if (info3 == info2)
 {
 return double.TryParse(Value, NumberStyles.Any, info2, out Result);
 }
 try
 {
 Result = double.Parse(Value, NumberStyles.Any, info2);
 flag1 = true;
 }
 catch (FormatException)
 {
 flag1 = double.TryParse(Value, NumberStyles.Any, info3, out Result);
 }
 catch (Exception)
 {
 flag1 = false;
 }
 return flag1;
}方案五: 直接引用vb運行庫(執行效率不高)

方法: 首先需要添加Visualbasic.runtime的引用
代碼中Using Microsoft.visualbasic;
程序中用Information.isnumeric("ddddd");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交丰臀xxxxx网站| 欧美日韩国产丝袜另类| 日韩成人中文电影| 久久久av亚洲男天堂| 欧美日韩性视频在线| xxxx性欧美| 亚洲深夜福利网站| 日韩精品电影网| 中文字幕久热精品在线视频| 久久视频在线视频| 欧美日韩国产一区中文午夜| 亚洲欧美制服综合另类| 成人网址在线观看| 亚洲一区二区中文| 亚洲图片在线综合| 在线播放国产一区中文字幕剧情欧美| 亚洲最大福利视频网| 欧美国产日韩一区二区| 欧美精品在线免费| 韩国三级电影久久久久久| 亚洲国产婷婷香蕉久久久久久| 精品久久香蕉国产线看观看亚洲| 国产成人免费av电影| 国产精品私拍pans大尺度在线| 国产日韩欧美自拍| 日韩欧美精品网址| 国产在线拍偷自揄拍精品| 丝袜亚洲另类欧美重口| 亚洲精品www久久久久久广东| 一本色道久久88精品综合| 久久手机精品视频| 国产精品一区二区三区成人| 亚洲新中文字幕| 精品国产精品自拍| 国产精品欧美激情在线播放| 中文字幕综合一区| 欧美日韩国产va另类| 自拍偷拍亚洲在线| 91精品久久久久久久久久入口| 性亚洲最疯狂xxxx高清| 亚洲国产精品久久精品怡红院| 久久人体大胆视频| 日韩av在线一区二区| 色av中文字幕一区| 精品久久久久久中文字幕一区奶水| 欧亚精品在线观看| 宅男66日本亚洲欧美视频| 亚洲第一级黄色片| 国产精品mp4| 91精品国产综合久久香蕉| 欧美乱妇高清无乱码| 国产精品一区二区三| 亚洲欧美综合图区| 欧美极品xxxx| 久久久亚洲精品视频| 久久精品中文字幕| 欧美激情高清视频| 色婷婷综合成人av| 欧美另类第一页| 日韩av在线播放资源| 色偷偷偷综合中文字幕;dd| 亚洲午夜未满十八勿入免费观看全集| 欧美一级片免费在线| 日韩国产一区三区| 久久亚洲一区二区三区四区五区高| 欧美中文字幕视频在线观看| 精品亚洲永久免费精品| 欧美日韩综合视频| 国产婷婷97碰碰久久人人蜜臀| 国产精品va在线播放我和闺蜜| 在线精品播放av| 精品久久久久久久大神国产| 日韩黄色在线免费观看| 欧美一级电影久久| 影音先锋欧美在线资源| 97视频在线观看视频免费视频| 欧美电影免费看| 日韩免费高清在线观看| 亚洲国产精品美女| 久久精品国产一区| 亚洲美女在线视频| www.久久久久| 久久久国产一区二区| 国产欧美日韩91| 欧美日韩国产限制| 丝袜美腿精品国产二区| 欧美一级片免费在线| 亚洲第一福利网站| 一区二区三区亚洲| 国产精品久久久久久亚洲影视| 午夜精品久久久久久久男人的天堂| 日韩中文字幕网址| 欧美日韩国产综合视频在线观看中文| 国产精品视频资源| 91热福利电影| 久久久久久国产精品三级玉女聊斋| 国产99久久精品一区二区永久免费| 国产精品jizz在线观看麻豆| 久久精品国产一区二区三区| 欧美日韩成人精品| 久久99精品久久久久久噜噜| 欧美日韩国产影院| 亚洲色图激情小说| 日韩av在线免费观看一区| 国产网站欧美日韩免费精品在线观看| 久久亚洲精品网站| 中文字幕国产亚洲2019| 欧美日韩一区二区三区| 热re99久久精品国产66热| 疯狂做受xxxx欧美肥白少妇| 欧美国产精品va在线观看| 国产欧美婷婷中文| 欧美激情中文字幕乱码免费| 国产一区玩具在线观看| 俺去啦;欧美日韩| 国模精品视频一区二区| 日韩在线欧美在线国产在线| 国产精品99久久久久久人| 欧美精品激情在线观看| 欧美性受xxx| 久久久黄色av| 91超碰中文字幕久久精品| 欧美色欧美亚洲高清在线视频| 国产精品一区久久久| 亚州国产精品久久久| 精品露脸国产偷人在视频| 亚洲天堂免费在线| 欧美日韩中文字幕| 91精品视频播放| 狠狠躁天天躁日日躁欧美| 国产日韩在线播放| 精品国产一区二区在线| 欧美亚洲成人xxx| 亚洲精品乱码久久久久久金桔影视| 亚洲男人天堂九九视频| 久久精品99无色码中文字幕| 欧美日韩第一视频| 国产精品免费视频xxxx| 欧美激情综合亚洲一二区| 国产精品美腿一区在线看| 欧美日韩国产精品一区二区不卡中文| 久久久久久久久中文字幕| 日韩av理论片| 亚洲黄一区二区| 91精品国产高清久久久久久91| 国产精品入口日韩视频大尺度| 青草青草久热精品视频在线观看| 日韩成人性视频| 国内外成人免费激情在线视频网站| 97涩涩爰在线观看亚洲| 欧美激情亚洲激情| 久久久成人的性感天堂| 亚洲国产精久久久久久| 久久久在线视频| 中文字幕少妇一区二区三区| 亚洲天堂第一页| 色黄久久久久久| 91大神在线播放精品| 亚洲激情视频在线观看| 日韩av免费看| 97精品久久久| 久久精品夜夜夜夜夜久久| 中文日韩在线视频| 91国产视频在线播放|