2012-01-03 4 views
0

Я пытаюсь преобразовать значения строк в целые числа, однако всякий раз, когда я это делаю, он дает мне значение ASCI символа вместо фактической типизированной строки.Преобразование String в Int в Java с использованием массивов

Пример:

пользователь вводит «11101» там клавиатуры к строковой переменной с именем двоичная

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

если посмотреть на значения хранения [I], я буду видеть только аски значения цифр, а не фактические 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'; 
} 
Смежные вопросы