2014-02-13 48 views
0

此方法將一個整數添加到數組中。我必須弄清楚如何做一個嘗試抓住輸入來捕捉負整數和像字母這樣的東西,我不知道如何去做。我將如何做到這一點?嘗試捕捉java中的範圍和alpha錯誤

private static int[] addInt (int[] ara, Scanner kb) { 
    int[] newAra = new int[ara.length + 1]; 
    for(int i = 0; i < ara.length; i++) { 
     newAra[i] = ara[i]; 
     } 
    System.out.println("Enter new integer:"); 
    newAra[newAra.length-1] = kb.nextInt(); 
    selectionSort(newAra); 
    return newAra; 
    } 
+0

如果表現就令人關注的律位使用... arraylist而不是丟棄數組,創建一個新的超時時間並用之前的值填充它 – codeMan

回答

2

int確實支持負數。如果你想對負數有個例外,你必須自己生成它。您的代碼只會從Scanner類中拋出一個InputMismatchException,如果掃描器中的下一個標記與整數的正則表達式不匹配,則會拋出該類。在字符。

這裏下面是投擲爲負數的異常爲你的方法

int value = kb.nextInt(); 
if (value < 0) throw new IllegalArgumentException(); 
else newAra[newAra.length-1] = kb.nextInt(); 

,並在代碼中的一個例子,

try { 
    my_int_array = addInt(my_int_array, scanner); 
} 
catch (InputMismatchException ime) { 
    // tell that it's not a digit - number 
} 
catch (IllegalArgumentException iae) { 
    // tell that it's a negative input 
} 
catch (Exception e) { 
    // to catch all other exceptions from the Scanner class like IllegalStateException ... 
} 
+0

「默認情況下,int數據類型是一個32位帶符號的二進制補碼整數,其最小值爲-2^31,最大值爲值2^31-1「 – Brian

+0

它保留te讓我知道那個類的NegativeNumberException不存在。 – user3242445

+0

噢,好吧,我剛剛看到你的編輯。 – user3242445