2013-04-15 63 views
0

我被困在最後我的問題得到NumberFormatException將字符串轉換爲整數ascii值

我想取一個字符串,如Wsup,並將其變成ASCII的值,結果爲'87115117112'。

我已經得到了成功建立了幾個不同的數字字符串,但當我嘗試parseInt(string)上,我得到了我的例外。我已經嘗試打印出字符串作爲字符數組尋找隱藏的空白區域,我沒有運氣使用String.trim(),我很困惑它爲什麼不被識別爲有效的整數。

public static int toAscii(String s){ 
    StringBuilder sb = new StringBuilder(); 
    String ascString = null; 
    long asciiInt; 
      for (int i = 0; i < s.length(); i++){ 
       sb.append((int)s.charAt(i)); 
       char c = s.charAt(i); 
      } 
      ascString = sb.toString(); 
      asciiInt = Integer.parseInt(ascString); // Exception here 
      return 0;// asciiInt; 0 in place just to run 
} 

感謝您給予的任何幫助。

+0

忽略那個char c = s.char ... Rem另一種方式我試過 –

+0

87115117112不符合32位整數(有符號或無符號)。 – heikkim

回答

3

尤爾asciiInt長類型,因此做這樣

asciiInt = Long.parseLong(ascString); 

這裏是你的全功能

public static long toAscii(String s){ 
     StringBuilder sb = new StringBuilder(); 
     String ascString = null; 
     long asciiInt; 
       for (int i = 0; i < s.length(); i++){ 
        sb.append((int)s.charAt(i)); 
        char c = s.charAt(i); 
       } 
       ascString = sb.toString(); 
       asciiInt = Long.parseLong(ascString); 
       return asciiInt; 
    } 
+2

+1此外,請確保你正在返回一個'long'而不是'int'('public static long toAscii(String s)') – MadProgrammer

+0

謝謝!我已經認識到我的結果不適合int類型,這就是爲什麼我將asciiInt改爲long,但我沒有相應地跟進。 Code的全部設置,再次感謝 –

0

你需要,只要不是整數,我有實現你的toascii將返回()有一點點

public static long toAscii(String s){ 
     StringBuilder sb = new StringBuilder(); 
     long asciiInt; 
     for (int i = 0; i < s.length(); i++){ 
      char c = s.charAt(i); 
      asciiInt = (int)c; 
      System.out.println(c +"="+asciiInt); 
      sb.append(asciiInt); 
     } 
     return Long.parseLong(sb.toString()); 
}