簡體   English   中英

整數解析不適用於將二進制轉換為十進制

[英]Integer Parsing is not working for converting binary to decimal

我正在開發一個可以計算二進制二數的應用程序。 我使用兩個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" />

爪哇:

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不會導致崩潰。

在 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 或為空,並且它們會產生異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM