自己写么也可以,试试通过ascii码判断一下了: public int ConvertToInt(string s){ ASCIIEncoding ascii = new ASCIIEncoding(); byte[] b = ascii.GetBytes(s); int ir = 0; for (int i = 0; i < b.Length; i++) { if (b[i] > 48 && b[i] < 57){ ir = ir * (i == 0 ? 1 : 10); ir = ir + (b[i] - 48); }else{ return ir; } } return ir; }
用foreach遍历整个数组 然后用IsDigit进行判断
将string转换为int型至少有四种方法: 1.int.Parse(string); 2.Convert.ToInt32(string); 3.(int)string; 4.写个循环,逐一检测string中的每个字符是否为数字,然后按位数累加,如: int result=0; int iLen=str.Length; foreach(char ch in str.ToCharArray()) { if (char.IsDigit(ch)) { result+=Math.Power(10,--iLen)*(ch-49); } } //result就是转换后的数字
int ConvertToInt(string s){ int value=0; int iLen=s.Length; foreach(char c in s.ToCharArray()) { if (char.IsDigit(c)) { value+=Math.Power(10,--iLen)*(c-49);}else{ throw new Exception("........"); } } return value; }
Int32.Parse(字符串);
这个太强了!
要不试试convert.Int32();
public int ConvertToInt(string s){
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] b = ascii.GetBytes(s);
int ir = 0; for (int i = 0; i < b.Length; i++) {
if (b[i] > 48 && b[i] < 57){
ir = ir * (i == 0 ? 1 : 10);
ir = ir + (b[i] - 48);
}else{
return ir;
}
}
return ir;
}
然后用IsDigit进行判断
1.int.Parse(string);
2.Convert.ToInt32(string);
3.(int)string;
4.写个循环,逐一检测string中的每个字符是否为数字,然后按位数累加,如:
int result=0;
int iLen=str.Length;
foreach(char ch in str.ToCharArray())
{
if (char.IsDigit(ch))
{
result+=Math.Power(10,--iLen)*(ch-49);
}
}
//result就是转换后的数字
int value=0;
int iLen=s.Length;
foreach(char c in s.ToCharArray())
{
if (char.IsDigit(c))
{
value+=Math.Power(10,--iLen)*(c-49);}else{
throw new Exception("........");
}
}
return value;
}