在第 8 行将字符串转换为 int 时出现错误。
整数 parseInt 方法似乎没有完成其工作。
我尝试使用其他方法来转换字符串,但没有任何效果,这导致我失败了我正在做的编码挑战。我已经删除了其余的代码,因为我的逻辑错误就在这些行中。
错误消息如下
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.parseInt(Integer.java:615)
at Solution.reverseNum(Solution.java:35)
at Solution.main(Solution.java:8)
public class Solution {
public static void main(String args[] ) throws Exception {
String sc = "1234567890123456";
int noCases = 1;
for(int i=0; i<noCases; i++){
int rev = reverseNum(sc);
} // for each credit card number
}
public static int reverseNum(String inp){ // helper function
int in =Integer.parseInt(inp);
int res = 0;
for(int i = in; i !=0; i/=10){
res = res *10 + i%10;
}
return res;
}
}
最佳答案
1234567890123456
太大,无法成为 int。这里,用逗号看一下:1,234,567,890,123,456
。这是一个千万亿。
最大可能的整数是 2,147,483,647。尝试较小的数字或 Long.parseLong()
关于java - 在此程序中无法将 String 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58120601/