2013-02-21 42 views
0

如果我想編寫一個接受字符串並將其轉換爲整數的函數,並且我完全不信任我的輸入,那麼如果字符串無效。我想返回0,但這會令人困惑,因爲數字實際上可能是0?假設這是面試問題,您需要檢查所有邊緣案例。將字符串轉換爲整數 - 如果字符串無效,應該返回什麼

+2

A)核心語言已經存在('Integer.parseInt()')B)當輸入錯誤時它會引發異常。 – 2013-02-21 22:38:20

+0

爲什麼不只是使用'Integer.parseInt();' – 2013-02-21 22:38:31

+0

@Jigar Joshi:這只是我看到的一個樣本面試問題,我想知道返回的最好的東西(也許是什麼邊緣情況下檢查) – user1136342 2013-02-21 22:40:07

回答

0

什麼,我應該返回,如果字符串無效

Throw a RunTimeExceptionAPI已經爲你做了。如果你嘗試使用Integer.parseInt(str)解析無效字符串,它會在運行時拋出NumberFormatException

+1

最後我檢查,這是一個NumberFormatException。但我可能是錯的。 – Achrome 2013-02-21 22:42:28

+0

@AshwinMukhija哎呀,我在想什麼..最近一直在工作。所以kindagot用於parseException ..:P – PermGenError 2013-02-21 22:43:40

+0

如果它爲空或空字符串,是否也應該被認爲是NumberFormatException? – user1136342 2013-02-21 22:51:14

2

在Java中,拋出Exception是常規操作。這就是Integer.parseInt()所做的,這是該功能的官方Java實現。

+0

如果它爲空或空字符串呢?空字符串是否也會拋出異常?空字符串應該拋出一個不同的異常(而不是nullpointerexception)? – user1136342 2013-02-21 22:43:04

+1

是的,儘管'IllegalArgumentException'也可以。 – 2013-02-21 22:45:04

0

一個可能的選擇是如果字符串不能轉換爲整數,則返回默認值。例如:

public int convert(String input, int defaultValue) { 
    try { 
     return Integer.parseInt(input);  
    } catch (Exception e) { 
     return defaultValue;    
    } 
}