所以我是初学者;任务是将给定的字符串转换为数组,字符串总是以第一个字符作为行数,第二个字符作为列数。我的问题是解决如何将字符串 's' 的其余部分从一维数组移动到二维数组中。提前致谢!import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] s = scanner.nextLine().split(" "); int arows = Integer.parseInt(s[0]); int acols = Integer.parseInt(s[1]); int[][] cells = new int[arows][acols]; for (int col = 0; col < acols; col++){ for (int row = 0; row <= arows;row++){ cells[row][col] = Integer.parseInt(s[2]); } } } }
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
您需要为 for 循环实现一个计数器以遍历输入字符串。你现在正在做的是用你的字符串的第三个元素填充你的二维数组。
一种解决方案是只声明一个变量 i = 2,并为内部 for 循环的每次传递增加它。
int i = 2
for (int col = 0; col < acols; col++){
for (int row = 0; row < arows;row++){
cells[row][col] = Integer.parseInt(s[i]);
i++;
}
}
编辑:删除 <= 在行循环中,将索引的初始值更改为 2
慕仙森
TA贡献1827条经验 获得超7个赞
这就是解决方案,你必须再放一个迭代器,并把它初始化为2,这样就跳过了s[]的前两个元素
int i = 2;
for (int col = 0; col < acols; col++){
for (int row = 0; row < arows;row++){
cells[row][col] = Integer.parseInt(s[i]);
i++;
}
}
添加回答
举报
0/150
提交
取消