實驗要求:
用Android實現一個界面,在該頁面點擊實現加法運算。
代碼實現
實現結果
- 輸入結果為空時,如圖
問題及解決
函數中使用了強制轉換,當輸入字符串是也能轉換為int型數據,但是當輸入字符時提示錯誤。
進過學習了解java.lang.Integer.parseInt(String s)
是指的整形數據的整形數據的數據串,不是字符型的數據串,字符型的數據串有自己的函數。此處進行的調整是在輸入時進行提示,有空輸入或者不符合要求的數據進行提示。
java.lang.Integer.parseInt(String s, int radix)方法學習
1、方法原型:public static int parseInt(String s) throws NumberFormatException
方法說明:將字符串參數作為有符號的十進制整數進行解析。除了第一個字符可以是用來表示負值的 ASCII 減號 '-' ('\u002D') 外,字符串中的字符都必須是十進制數字。返回得到的整數值,就好像將該參數和基數 10 作為參數賦予 parseInt(java.lang.String, int) 方法一樣。
參數:
s - 包含要解析的 int 表示形式的 String。
返回:
用十進制參數表示的整數值。
拋出:
NumberFormatException - 如果字符串不包含可解析的整數。
2、還有另外一種形式:
public static int parseInt(String s,int radix)throws NumberFormatException
方法說明:使用第二個參數指定的基數,將字符串參數解析為有符號的整數。除了第一個字符可以是用來表示負值的 ASCII 減號 '-' ('\u002D’)外,字符串中的字符必須都是指定基數的數字(通過 Character.digit(char, int) 是否返回一個負值確定)。返回得到的整數值。
如果發生以下任意一種情況,則拋出一個 NumberFormatException 類型的異常:
第一個參數為 null 或一個長度為零的字符串。
基數小於 Character.MIN_RADIX 或者大於 Character.MAX_RADIX。
假如字符串的長度超過 1,那么除了第一個字符可以是減號 '-' ('u002D’) 外,字符串中存在任意不是由指定基數的數字表示的字符。
字符串表示的值不是 int 類型的值。
示例:
parseInt("0", 10) 返回 0
parseInt("473", 10) 返回 473
parseInt("-0", 10) 返回 0
parseInt("-FF", 16) 返回 -255
parseInt("1100110", 2) 返回 102
parseInt("2147483647", 10) 返回 2147483647
parseInt("-2147483648", 10) 返回 -2147483648
parseInt("2147483648", 10) 拋出 NumberFormatException
parseInt("99", 8) 拋出 NumberFormatException
parseInt("Kona", 10) 拋出 NumberFormatException
parseInt("Kona", 27) 返回 411787
參數:
s - 包含要解析的整數表示形式的 String
radix - 解析 s 時使用的基數。
返回:
使用指定基數的字符串參數表示的整數。
拋出:
NumberFormatException - 如果 String 不包含可解析的 int。