2016-02-24 49 views
-1

我是使用servlet和爲學校開展項目的新手。我正在嘗試從html文件讀取輸入。輸入的格式如下:100 101 102; 200 201 202; 300 301 302並試圖製作一個2d數組,其中分號分隔行。目前,我有以下幾點:在servlet中創建2d數組並添加

String numbers = request.getParameter("arrayA"); 
    int array1[][] = new int[numbers.length()][]; 
    for (int i = 0; i < numbers.length(); i++) { 
     String[] line = numbers.split(";"); 
     for (int j = 0; j < numbers.length(); j++) { 
      array1[i][j] = Integer.parseInt(line[j]); 
     } 
    } 

我得到這個當我嘗試用String []行= numbers.split( 「」);

java.lang.NumberFormatException: For input string: "100 101 102" 

卡住發現最新錯誤。任何幫助將是偉大的!謝謝!

編輯:現在我有下面的代碼試圖做下面的答案建議,但得到:java.lang.NumberFormatException:對於輸入字符串:「[Ljava.lang.String; @ 10c105e」

String numbers = request.getParameter("arrayA"); 
    int array1[][] = new int[numbers.length()][]; 
    for (int i = 0; i < numbers.length(); i++) { 
     String[] line = numbers.split(";"); 
     String temp = line.toString(); 
     String[] num = temp.split(" "); 
     for (int j = 0; j < numbers.length(); j++) { 
      array1[i][j] = Integer.parseInt(num[j]); 
     } 
    } 

不知道它只是我的邏輯或什麼

回答

0

因爲100 101 102不是一個有效的整數。

當您嘗試將無效數字格式轉換爲int類型Integer.parseInt(line[j])時,它會返回錯誤。


更新

你應該正確地使用這些方法。

String numbers = "100 101 102;200 201 202;300 301 302"; 
    int array1[][] = new int[numbers.length()][]; 
    //why use number.length? number.length is the String's length 
    for (int i = 0; i < numbers.length(); i++) 
    { 
     String[] line = numbers.split(";"); 
     //line[0]="100 101 102" , line[1]="200 201 202" , line[2]="300 301 302" 
     String temp = line.toString();  
     //Have you ever print this? 
     String[] num = temp.split(" "); 
     //you got wrong temp then get wrong num. 

     for (int j = 0; j < numbers.length(); j++) 
     { 
      array1[i][j] = Integer.parseInt(num[j]); 
     } 
     //cannout figure out why use numbers.length() 
    } 
+0

我該如何解決這個問題?用空格分隔它還是什麼? @TomN –

+0

是的,你可以用空格再次分割它。字符串將變爲'100','101'和'102'。然後編隊很好。 – TomN

+0

'line = numbers.split(「」);'在我用分號分割後給我空指針異常 –