Java 整数解析不工作 publicstaticintparseint(字符串s){ int-val=0; 对于(int i=s.length()-1,times=1;i>=0;i--,times*=10){ char c=s.charAt(i); int x=c-‘0’; 如果(x>=0&&x
我正在制作自己的int解析器,比如Integer.parseInt(String);而且它不能正常工作。我将其传递给方法“43545332”,它将其打印回我的“111111111”您没有以任何方式将Java 整数解析不工作 publicstaticintparseint(字符串s){ int-val=0; 对于(int i=s.length()-1,times=1;i>=0;i--,times*=10){ char c=s.charAt(i); int x=c-‘0’; 如果(x>=0&&x,java,Java,我正在制作自己的int解析器,比如Integer.parseInt(String);而且它不能正常工作。我将其传递给方法“43545332”,它将其打印回我的“111111111”您没有以任何方式将x添加到val上。你只是增加了10的幂。你没有以任何方式将x添加到val上。你只是增加了10的幂。Changeval+=次至val+=x更改val+=次数至val+=x您没有以任何方式将x添加到val上。您只需添加10的倍数。if(条件);如果(!(条件)){doSomething();}可以(也可能
x
添加到val
上。你只是增加了10的幂。你没有以任何方式将x
添加到val
上。你只是增加了10的幂。Changeval+=次代码>至val+=x代码>更改val+=次数代码>至val+=x
您没有以任何方式将x
添加到val
上。您只需添加10的倍数。if(条件);如果(!(条件)){doSomething();}
可以(也可能应该)重写为if(!(条件)){doSomething();}
。在您的情况下,您可能正在寻找如果(!Character.isDigit(c))抛出…
。谢谢。你是对的,你可以把它作为一个答案,它现在工作得很完美。你没有以任何方式将x
添加到val
上。您只需添加10的倍数。if(条件);如果(!(条件)){doSomething();}
可以(也可能应该)重写为if(!(条件)){doSomething();}
。在您的情况下,您可能正在寻找如果(!Character.isDigit(c))抛出…
。谢谢。你是对的,你可以把它作为一个答案,它现在工作得很完美。
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;
}