我有一個小方法,除其他外還將字符串轉換爲整數。由於字符串是方法的參數,我想確保該字符串是可轉換的。所以我只是想知道什麼是最安全和/或最快的方式。將字符串轉換爲整數安全的方式
A版本:剛剛離開它,因爲它是和承擔的風險(這我試圖避免)
public static int stringToInt(String param) {
return Integer.valueOf(param);
}
(在速度方面,什麼樣的區別會使其向版本B和C)
版本B:趕上前ception
public static int stringToInt(String param) {
try {
return Integer.valueOf(param);
} catch(NumberFormatException e) {
return -1;
}
}
C版:檢查字符串看到的每一個字母,如果它是一個位數或不
public static int stringToInt(String param) {
for(char c : param.toCharArray()) {
if(!Character.isDigit(c))
return -1;
}
return Integer.valueOf(param);
}
注意,參數必須是一個正數並且-1應該是我的小程序中的「錯誤值」,換句話說,所有這三個版本的方法在我的程序中都能很好地工作。
我對任何其他建議都非常樂意,如果您認爲自己更好,那麼請隨時創建自己的版本。
非常感謝您的支持。
第一個版本僅僅是「危險的」,如果錯誤是不正確的行爲,如果你不想搭上'NumberFormatException'更高的地方了變化。拋出異常可能是對錯誤輸入的完美迴應。 –
在我看來,第一個是最快的,但是如果你輸入一個非數字值,它會拋出一個異常。第二個對我來說是最好的,因爲它有一個防止異常停止你的程序的機會。最後一個,它只是第二個的長版。 –
版本C在負整數上失敗 – bengoesboom