我试图在java 2d char数组中存储一个矩阵,但由于我不能接受char中的输入,我试图找到存储在2d char数组中的最佳解决方案。
例如。基质
1112
1912
1892
1234
我尝试了什么: -
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
map[i][j]=sc.next().charAt(0);
输出错误。还有其他建议吗?
答案 0 :(得分:1)
您需要将代码更改为
String data = "";
int count = 0;
for (int i = 0; i < n; i++) {
if (sc.hasNext()) {
data = sc.next();
count = 0;
} else {
break;
}
for (int j = 0; j < n; j++)
map[i][j] = data.charAt(count++);
}
for i和j的循环用于生成矩阵索引,因为您需要读取首先必须通过令牌读取令牌的字符然后迭代其字符,其他用户答案失败,因为用户对矩阵和如果在j的最后一次迭代,即n-1(表示矩阵长度不是字符串长度),如果字符串长度小于n-1,那么你将获得in.charAt(j)
的IndexOutOfbound Exception。