java - 从 JSP 文本框输入矩阵?
问题描述
我正在尝试获取矩阵的输入,这是来自 JSP 页面的多维数组并打印它。我尽力了,
索引.JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>TSP</title>
</head>
<body>
<h1> Matrix</h1>
<form action="tsp.jsp">
<label>No of cities</label>
<input type="text" name="cities">
<label>Enter matrix</label>
<input type="text" name="matrix">
<button type="submit">Submit</button>
</form>
</body>
</html>
TSP.JSP
<%--
Created by IntelliJ IDEA.
User: Abhishek
Date: 11/21/2018
Time: 12:01 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Display</title>
</head>
<body>
<% int city= Integer.parseInt(request.getParameter("cities"));
int matrix[][]=new int[100][100];
for ( int i=0; i<city;i++) {
for (int j = 0; j < city; j++) {
matrix[i][j]= Integer.parseInt(request.getParameter("matrix"));
}
}
%>
<% out.print(city);
for ( int i=0; i<city;i++) {
for (int j = 0; j < city; j++) {
out.print(matrix);
}
}
%>
</body>
</html>
当我输入值 city 为 4 时,matrix = 1 2 3 4 5 6 7 8 8 8 8 8 1 2 3 4 并单击提交它显示异常:
java.lang.NumberFormatException:对于输入字符串:“1 2 3 4 5 6 7 8 8 8 8 8 1 2 3 4”
这样做的目的基本上是,如果成功了,我想将这些传递给 java 类来解决旅行商问题。该程序运行良好。我想为它创建一个网络界面,但我被困在这一点上。
解决方案
你可以试试这段代码:
public class StringToInt2dArray {
public static void main(String [] args) {
String s = "1 2 3 4 5 6 7 8 8 8 8 8 1 2 3 4";
System.out.println("Input string: " + s);
String [] ss = s.split(" ");
System.out.println("Array of strings: " + Arrays.toString(ss));
int [] int1d = new int [ss.length];
for (int i = 0; i < ss.length; i++) {
int1d [i] = Integer.parseInt(ss[i]);
}
System.out.println("Array of ints: " + Arrays.toString(int1d));
int rows = 4;
int cols = 4;
int ints2d [][] = new int [rows][cols]; // need to know the 2d array size
int n = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
ints2d [i][j] = int1d [n++];
}
}
System.out.println("Array of ints in 2D: ");
for (int i = 0; i < ints2d.length; i++) {
System.out.println(Arrays.toString(ints2d [i]));
}
}
}
输出:
Input string: 1 2 3 4 5 6 7 8 8 8 8 8 1 2 3 4
Array of strings: [1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 1, 2, 3, 4]
Array of ints: [1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 1, 2, 3, 4]
Array of ints in 2D:
[1, 2, 3, 4]
[5, 6, 7, 8]
[8, 8, 8, 8]
[1, 2, 3, 4]
推荐阅读
- python - Python 是否对列表的元素进行实习?
- enums - Rust 中的静态枚举
- php - 在php中创建pdf文件然后合并第二个文件
- python-3.x - /Mobile Documents/ 停止“python3 setup.py install”正常工作
- python - 如何在 Python 中进行插值?
- javascript - React 应用程序中的 Web 组件
- oracle - SQL*Plus 中带有多个参数的假脱机输出
- react-native - Fastlane- ld:找不到 -lPods-OneSignalNotificationServiceExtension 的库
- python - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()。OneHotEncoder
- cmake - CMake:清理其他生成的文件