在servlet中创建2d数组并进行添加

时间:2016-02-24 03:22:52

标签: java html arrays servlets

我不熟悉使用servlet并为学校项目工作。我试图从html文件中读取输入。输入采用以下格式:100 101 102; 200 201 202; 300 301 302并尝试制作分号分隔行的二维数组。我目前有以下内容:

    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 [] line = numbers.split(&#34;;&#34;);

时,我得到了这个
java.lang.NumberFormatException: For input string: "100 101 102"

坚持找错了。任何帮助都会很棒!谢谢!

编辑:我现在有以下代码尝试执行以下建议的答案但得到:java.lang.NumberFormatException:对于输入字符串:&#34; [Ljava.lang.String; @ 10c105e&#34;

   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]);
        }
    }

不确定它只是我的逻辑还是什么

1 个答案:

答案 0 :(得分: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()
    }