Целочисленный синтаксический анализ не работает для преобразования двоичного в десятичное - PullRequest
0 голосов
/ 07 января 2020

Я работаю над приложением, которое будет вычислять двоичное число два. Я использую два EditText для получения ввода. Затем отправьте значение в две строки. Затем используйте Integer.parseInt(input, 2) для преобразования числа в целое число для расчета. Но когда я использую Integer.parseInt, приложение вылетает.

XML:

                <EditText
                    android:id="@+id/edit1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:hint="Enter 1st Value"
                    android:textSize="17sp" />

                <EditText
                    android:id="@+id/edit2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:hint="Enter 1st Value"
                    android:textSize="17sp" />

Java:

EditText input1, input2;
int number1, number2, number3;
String string1, string2, string3;

    input1 = findViewById(R.id.edit1);
    input2 = findViewById(R.id.edit2);
    result = findViewById(R.id.result);

    string1 = input1.getText().toString();
    string2 = input2.getText().toString();

    number1 = Integer.parseInt(string1, 2);
    number2 = Integer.parseInt(string2, 2);

    number3 = number1 + number2;

Когда я использую number1 = Integer.parseInt(string1, 2); & number2 = Integer.parseInt(string2, 2); приложение вылетает.

Когда я удаляю эту часть, приложение не создает sh.

Я искал различные решения, но ничего не нашел.

Примечание: когда я устанавливаю строку в какое-то значение, тогда Inter.parseInt не вызывает cra sh.

1 Ответ

2 голосов
/ 07 января 2020

До числа1 = Integer.parseInt (строка1, 2); Вы должны проверить, что string1 является допустимым числом.

По крайней мере, я бы сделал что-то вроде:

try {
   if (string1 != null && string1.trim().equals("")) {
      number1 = Integer.parseInt(string1.trim(), 2);
   }
   // check other strings...
} catch (Exception e) {
    // do something if exception occur
}

Примечание: при onCreate () эти значения (string1, string2, string3) будут вероятно, ноль или пусто, и они будут генерировать исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...