Function:
/// <summary>
/// ToInt
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int atoi(string str)
{
string strNew = str.Trim();
string ch = strNew.Substring(0, 1);
string result = "";
int bl = 0;
double re;
bool flag = true;
for (int i = 1; i < strNew.Length; i++)
{
string s = strNew.Substring(i, 1);
if (int.TryParse(s, out bl))
{
if (Convert.ToInt32(s) == 0)
continue;
switch (ch)
{
case "0":
result = result + s.ToString();
break;
case "+":
result = result + s.ToString();
break;
case "-":
flag = false;
result = result + s.ToString();
break;
default:
if (i == 1)
result = result + ch.ToString();
result = result + s.ToString();
break;
}
}
else
break;
}
if (!string.IsNullOrEmpty(result))
{
re = Convert.ToDouble(result);
if (!flag)
re = -re;
if (re < int.MinValue || re > int.MaxValue)
re = 0;
}
else
re = 0;
return (int)re;
}
控制台展示:
static void Main(string[] args)
{
Console.WriteLine("请输入要转化的字符串:");
string str = Console.ReadLine();
int re = atoi(str);
if (re != 0)
Console.WriteLine("转化后:" + re);
else
Console.WriteLine("该字符串不能转换为整数!");
Console.ReadKey();
}