Java中String轉int型的方法以及錯誤處理


應要求,本周制作了一個判斷一個年份是否是閏年的程序。邏輯很簡單,這里就不貼代碼了。可是,在這次程序編寫中發現了一個問題。

在輸入年份時,如果輸入1)字母2)空3)超過Int上限時,就會拋exception。

問題出在String轉Int型時。

首先,在java中String轉換為Int主要有兩種方法

1.Integer.parseInt(s)

2.Integer.valueOf(s).intValue();

這兩種方法略有不同,之后再跟大家分析。

首先我使用第一種方法,當測試數據為正常的年份時,是沒有問題的,可當你測試非正常數據時就會拋出exception:

主要為NumberFormatException:

  1)當你輸入為字母時,也就是內容不是數字時,如abcd

  2)當你輸入為空時

  3)當你輸入超出int上限時

然后我使用了第二種方法,得到的結果與第一種相同。

那怎么解決這種問題呢,使用戶能正常輸入內容

首先我想到的是使用try—catch

是程序能夠捕捉到exception,並作相應處理

 

  以上代碼就是當輸入數據無法轉換成int型時,彈出請輸入正確年份的提示

TIPS:

1.Integer.parseInt(s)與Integer.valueOf(s).intValue()到底有什么不同呢,經過試驗感覺並沒有太大差異,但是Integer.valueOf(s)與Integer.parseInt(s)就有很大不同了,主要在於返回值不同

  Integer.parseInt(s)返回值為Int型

  Integer.valueOf(s)返回值為Integer,區別在於后者能夠使用Integer的一些方法。

2.在做軟件測試時不能僅僅用正常數據進行測試,因為對於軟件從業人員而言,有很多觀念根深蒂固,而一般使用者並沒有這些觀念,如果你不考慮這些使用者,那你的程序就會出現很多問題,就像這個閏年程序一樣

3.try—catch在使用中真的用處很大,一個程序執行中有很多情況下會出exception,而這個方法能夠幫助我們作相應處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM