2016-08-18 89 views
0

我有这样的代码在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

告诉我们a,b,c ... k和rawPassword – SpringLearner

+0

a = r.nextInt(10); \t \t b = r.nextInt(10); \t \t c = r.nextInt(10); \t \t d = r.nextInt(10); \t \t E = r.nextInt(10); \t \t \t F = r.nextInt(10); 克= r.nextInt(10); \t \t h = r.nextInt(10); \t \t i = r.nextInt(10); \t \t j = r.nextInt(10); \t \t k = r.nextInt(10); rawpassword是codestring对不起,这是我班的旧版本。 – Jakibah

+1

你的rawpassword'String显然不包含有效的数字。 –

回答

1

如果参数不是可解析的Integer,则parseInt(String s)方法会抛出NumberFormatException

确保您传递给该方法的StringNumber-2^312^31 - 1

+0

这是超过2^31个谢谢 – Jakibah

0

之间可能出现的数字格式异常,当你试图将一个字符串类型转换成整数,但不适合作为一个整数。 从你的代码我无法理解什么样的价值是A,B,C,d .. 从我的经验,我已经上传的两个图像显示你可能是这样那样的错误,你做

enter image description here

这里的数字格式异常是由于codestring是10.320而产生的,它是一个字符串类型,所以当编译器试图将它转换为字符串时,它无法将其转换为。

enter image description here

但在这种情况下码流为1020,这样容易将其转换为int类型。

3
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)); 
相关问题