为了账号安全,请及时绑定邮箱和手机立即绑定

一维数组 -> 二维数组

一维数组 -> 二维数组

九州编程 2021-10-28 15:35:46
所以我是初学者;任务是将给定的字符串转换为数组,字符串总是以第一个字符作为行数,第二个字符作为列数。我的问题是解决如何将字符串 '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


查看完整回答
反对 回复 2021-10-28
?
慕仙森

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++;

    }

}


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信