2013-03-16 67 views

回答

5

您的代碼正在接收字符串的數組。您可以根據需要使用Integer.parseIntLong.parseLong將數組中的條目轉換爲數字。

例如:

String Dept_ID[] = request.getParameterValues("dept_id")); 
int[] ids = null; 
if (Dept_ID != null) { 
    ids = new int[Dept_ID.length]; 
    for (int index = 0; index < Dept_ID.length; ++index) { 
     ids[index] = Integer.parseInt(Dept_ID[index]); 
    } 
} 

如果數使用不同的基數(基數)超過10,則可以提供的基數作爲第二ARG(詳見鏈接)。

+0

我做了完全一樣的事情,你在代碼中鍵入,但它拋出一個異常: - 錯誤將數據類型nvarchar轉換爲數字。 – rams 2013-03-16 10:34:55

+0

@rams:你展示的代碼不應該做那樣的事情。 ['ServletRequest#getParameterValues'](http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getParameterValues(java.lang.String))與數據庫沒有任何關係。 (如果'request'不是'ServletRequest'或它的一個子類,你真的**需要說,因爲這是我們可以做的唯一合理的假設。) – 2013-03-16 10:39:16

0

上面的回答是正確的,但它沒有考慮到當您將字母作爲輸入無法轉換時發生的情況。如果你問我,你想使用一個嘗試和捕捉方法。

喜歡的東西(假設你使用上面的代碼):

String Dept_ID[] = request.getParameterValues("dept_id")); 
int[] ids = null; 

if (Dept_ID != null) { 
    ids = new int[Dept_ID.length]; 
    for (int index = 0; index < Dept_ID.length; index++) { 
     try { 
      ids[index] = Integer.parseInt(Dept_ID[index]); 
     } 
     catch (NumberFormatException e) { 
      System.out.println("Invalid crap."); 
     } 
    } 
} 

還要注意,我把++索引部分周圍的其他方法,以指數++,如果你不這樣做,你將繼續失蹤數組中的第一個索引。

相關問題