今天听朋友说到个面试题:不用现有方法,把string转换成int型
就试着写了一下,没有考虑负数的情况,看的朋友可以自己试一下,也不难.
view plain usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceStringToInt{classProgram{staticvoidMain(string[]args){stringstrInput=string.Empty;//输入e,E,退出操作while(!strInput.Equals("e")||!strInput.Equals("E")){strInput=Console.ReadLine();intn=TransToInt(strInput);if(n==-1){Console.WriteLine("输入的不是有效的数字字符或数字超出整形范围!");}else{Console.WriteLine("转换后的整数是{0}",n);}}}privatestaticintTransToInt(stringstr){char[]ch=str.ToCharArray();//转换成char型来计算int[]nArray=newint[str.Length];//定义一个int型数组intnReturn=0;//定义返回的int型值constintten=10;//定义常量for(inti=0;i<ch.Length;i++){if(ch[i]-48<0||ch[i]-48>9)//判断是否是可转换的int型{return-1;}else{nArray[i]=ch[i]-48;//把字符转换成intfor(intj=ch.Length-i-1;j>0;j--){nArray[i]*=ten;}nReturn+=nArray[i];}}if(!nReturn.ToString().Equals(str))//如果数字超出int型范围{return-1;}returnnReturn;}}}