【发布时间】:2020-04-25 04:37:34
【问题描述】:
我正在开发一个可以计算二进制两个数的应用程序。我正在使用两个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 不会导致崩溃。
【问题讨论】:
-
你能找到堆栈跟踪吗?
-
您需要捕获任何潜在的数字格式异常。如果将其设置为值时它没有崩溃,那么它可以工作,您只需要处理字符串为空或不是数字的情况
-
那么
R.id.edit1和R.id.edit2的内容是什么?如果它是有效的二进制数,它是否有效? -
提交@dan1st
-
@Tyler,我该怎么做?
标签: java android string binary