Java 为什么这种转换会产生错误?
我在eclipse中有以下代码:Java 为什么这种转换会产生错误?,java,string,parsing,exception,int,Java,String,Parsing,Exception,Int,我在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 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)
但我不明白为什么。
有人能帮我吗?如果参数不是可解析的整数,则parseInt(String s)
方法会抛出NumberFormatException
确保传递给方法的String
是一个Number
并且介于-2^31
和2^31-1
parseInt(String s)
方法在参数不是可解析的整数时抛出一个NumberFormatException
确保传递给该方法的字符串
是一个数字
,并且介于-2^31
和2^31-1
当您尝试将字符串类型转换为整数但不适合作为整数时,会出现数字格式异常。
从你的代码中,我无法理解a、b、c、d的值是多少,。。
根据我的经验,我上传了两张图片来告诉你可能是你犯了这样的错误
这里出现数字格式异常,因为codestring为10.320,并且是字符串类型,所以当编译器尝试将其转换为字符串时,由于以下原因,无法将其转换为字符串
但在这种情况下,codestring是1020,因此很容易将其转换为整数。当您尝试将字符串类型转换为整数但不适合作为整数时,会出现数字格式异常。
String A = String.valueOf(10);
String B = String.valueOf(10);
String C = String.valueOf(10);
String D = String.valueOf(10);
String E = String.valueOf(10);
String F = String.valueOf(10);
String G = String.valueOf(10);
String H = String.valueOf(10);
String I = String.valueOf(10);
String J = String.valueOf(10);
String K = String.valueOf(10);
String codestring = A+B+C+D+E+F+G+H+I+J+K;
BigInteger bigInteger = new BigInteger(codestring);
System.out.println(bigInteger.max(bigInteger));
从你的代码中,我无法理解a、b、c、d的值是多少,。。
根据我的经验,我上传了两张图片来告诉你可能是你犯了这样的错误
这里出现数字格式异常,因为codestring为10.320,并且是字符串类型,所以当编译器尝试将其转换为字符串时,由于以下原因,无法将其转换为字符串
但是在这个场景中,代码字符串是1020,所以很容易转换成整数。显示a,b,c…k和rawPassworda=r.nextInt(10);b=r.nextInt(10);c=r.nextInt(10);d=r.nextInt(10);e=r.nextInt(10);f=r.nextInt(10);g=r.nextInt(10);h=r.nextInt(10);i=r.nextInt(10);j=r.nextInt(10);k=r.nextInt(10);rawpassword是codestring抱歉,这是我的类的旧版本。您的rawpassword
字符串显然不包含有效的数字。请使用循环,您将保存代码行并提高清晰性和可读性显示us a、b、c…k和rawPassworda=r.nextInt(10);b=r.nextInt(10);c=r.nextInt(10);d=r.nextInt(10);e=r.nextInt(10);f=r.nextInt(10);g=r.nextInt(10);h=r.nextInt(10);i=r.nextInt(10);j=r.nextInt(10);k=r.nextInt(10);rawpassword是codestring很抱歉,这是我的类的旧版本。您的rawpassword
字符串显然不包含有效的数字。请使用循环,您将保存代码行并提高清晰度和可读性
String A = String.valueOf(10);
String B = String.valueOf(10);
String C = String.valueOf(10);
String D = String.valueOf(10);
String E = String.valueOf(10);
String F = String.valueOf(10);
String G = String.valueOf(10);
String H = String.valueOf(10);
String I = String.valueOf(10);
String J = String.valueOf(10);
String K = String.valueOf(10);
String codestring = A+B+C+D+E+F+G+H+I+J+K;
BigInteger bigInteger = new BigInteger(codestring);
System.out.println(bigInteger.max(bigInteger));