我不熟悉使用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]);
}
}
不确定它只是我的逻辑还是什么
答案 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()
}