public static int parseInt(String s) {
int val = 0;
for (int i = s.length() - 1, times = 1; i >= 0; i--, times *= 10) {
char c = s.charAt(i);
int x = c - '0';
if (x >= 0 && x < 10)
;
else
throw new NumberFormatException("not an int '" + c + "'");
x *= times;
val += times;
}
return val;
}
我正在创建自己的int解析器,如Integer.parseInt(String);它没有正常工作。我将此传递给方法&#34; 435435332&#34;并将它打印回给我&#34; 111111111&#34;
答案 0 :(得分:4)
您未以任何方式向x
添加val
。你只是增加10的权力。
答案 1 :(得分:1)
将val += times;
更改为val += x;
答案 2 :(得分:0)
我会这样写:
dot