前两天遇到一个有趣的题,让把字符串转换成数字,前提是不能使用任何封装好的类库。本来以为挺简单,但是当实际做的时候,发现还是有困难的。主要是要解决char和int进行相加的问题!
直接上代码吧!(代码里没有进行字母、最大长度等验证!有更好的方法欢迎指出)
class="java">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; }
?
?