整数解析不适用于将二进制转换为十进制

KM Rejowan Ahmmed:

我正在开发一个将计算二进制两位数的应用程序。我正在使用两个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);应用程序崩溃时。

当我删除该部分时,该应用程序不会崩溃。

我搜索了各种解决方案,但没有任何效果。

注意:当我将字符串设置为某个值时Inter.parseInt,不会导致崩溃。

AM13:

在number1之前= Integer.parseInt(string1,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)可能为null或为空,并且它们将生成异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章