2012-01-03 82 views
0

我試圖將字符串值轉換爲整數,但是每當我這樣做時,它都會給出字符的ASCI值,而不是實際鍵入的字符串。使用數組在Java中將字符串轉換爲Int

實施例:

有鍵盤上的一個用戶輸入「11101」來命名二進制字符串變量

for(int i = 0; i < binary.length(); i++){ 
storage[i] = Integer.valueOf(binary.charAt(i)); 
} 

如果我看存儲[I]的值,我將只能看到ASCI數字的值,而不是實際的1或0的方法。

+0

爲什麼?你不需要一個數組來存儲一個整數。 – EJP 2013-12-03 22:59:18

回答

2

試試這個:

for(int i = 0; i < binary.length(); i++){ 
    storage[i] = Integer.valueOf(binary.substring(i, i + 1)); 
} 
+0

謝謝,這對我來說非常合適。 – 2012-01-03 03:20:19

3

使用Integer.parseInt(str,radix)方法。

int no=Integer.parseInt("11101",2); 

//or 

int no=Integer.parseInt("11101"); 
+0

我從來不知道基數,非常感謝。我會從中得到很多的使用。 – 2012-01-03 03:21:04

2

這應該可以做到。

storage[i] = Integer.parseInt(binary.charAt(i)); 
+0

除非無效輸入不會失敗,例如:110011911 – PlexQ 2012-01-03 03:10:40

+0

謝謝你的例子,我實際上已經試過這個,但仍然得到了相同的結果,但是謝謝你的信息:) – 2012-01-03 03:22:52

+0

@PlexQ沒有提到驗證 – 2012-01-03 03:27:36

2
for(int i = 0; i < binary.length(); i++){ 
    storage[i] = Integer.parseInt(binary.charAt(i), 2); 
} 
+0

另一個很好的例子,非常感謝。 – 2012-01-03 03:22:10

0
for(int i = 0; i < binary.length(); i++){ 
    storage[i] = binary.charAt(i) - '0'; 
}