java为什么这种转换会产生错误?
我在eclipse中有以下代码:
String A = String.valueOf(a);
String B = String.valueOf(b);
String C = String.valueOf(c);
String D = String.valueOf(d);
String E = String.valueOf(e);
String F = String.valueOf(f);
String G = String.valueOf(g);
String H = String.valueOf(h);
String I = String.valueOf(i);
String J = String.valueOf(j);
String K = String.valueOf(k);
String rawpassword = A+B+C+D+E+F+G+H+I+J+K;
int password = Integer.parseInt(rawpassword);
System.out.println(password);
它给了我这个错误
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.parseInt(Integer.java:527)
at com.jakibah.codegenerator.Main.Generate(Main.java:65)
at com.jakibah.codegenerator.Main.run(Main.java:24)
at java.lang.Thread.run(Thread.java:745)
但我不明白为什么。 有人能帮我吗
# 1 楼答案
# 2 楼答案
如果参数不是可解析的
Integer
,则parseInt(String s)
方法抛出一个NumberFormatException
确保传递给方法的
String
是一个Number
并且在-2^31
和2^31 - 1
之间# 3 楼答案
当您试图将字符串类型转换为整数但不适合作为整数时,会出现数字格式异常。 从你的代码中,我无法理解a、b、c、d的值是多少,。。 根据我的经验,我上传了两张图片来告诉你可能是你犯了这样的错误
这里出现数字格式异常,因为codestring为10.320,并且是字符串类型,所以当编译器尝试将其转换为字符串时,由于以下原因,无法将其转换为字符串
但在这个场景中,codestring是1020,所以很容易将其转换为int