2012-01-03 16 views
0

文字列の値を整数に変換しようとしていますが、これを行うたびに実際の型付き文字列ではなく文字のASCI値が返されます。配列を使ってJavaで文字列をIntに変換する

例:バイナリ

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

をという名前の文字列変数にあり、キーボード上の

ユーザ入力「11101」私はストレージの値を見れば[i]は、私が唯一のASCIが表示されます数値の値であり、実際の1または0の値ではありません。

+0

なぜ?整数を格納する配列は必要ありません。 – EJP

答えて

2

これを試してみてください:

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

ありがとう、これは私のために完璧に働いた。 –

3

Integer.parseInt(str,radix)メソッドを使用します。

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

//or 

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

私は前に基数について知りませんでした、ありがとうございました。私はこれから多大な利用を得るでしょう。 –

2

これはトリックを行う必要があります。

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

以下のような無効な入力では失敗しません:110011911 – PlexQ

+0

この例をありがとう、私は実際にこれを試しましたが、同じ結果が得られましたが、情報ありがとうございます:) –

+0

@PlexQ検証の記載はありませんでした –

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

ではありません。別の良い例です。ありがとうございます。 –

0
for(int i = 0; i < binary.length(); i++){ 
    storage[i] = binary.charAt(i) - '0'; 
} 
関連する問題