2016-08-18 54 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)); 
相關問題