前两天遇到一个有趣的题,让把字符串转换成数字,前提是不能使用任何封装好的类库。本来以为挺简单,但是当实际做的时候,发现还是有困难的。主要是要解决char和int进行相加的问题!
直接上代码吧!(代码里没有进行字母、最大长度等验证!有更好的方法欢迎指出)
private static int stringToNumber(String ss) throws Exception {
int num = 0;
//char与int进行运算,char的数值要减去 48
//因为ASCII码中0的值是48,1就是49
int p = 0;
for (int i = ss.length()-1; i >=0 ; i--) {
int s = ss.charAt(i)-48;
if(i==ss.length()-1)
num=s;
else
num+=(s*getPower(10,p));
p++;
}
return num;
}
//求num的p次方
private static int getPower(int num,int p) {
if(p==0)
return 1;
int tmp = num;
for(int i=1;i<=p-1;i++){
tmp*=num;
}
return tmp;
}