一维数组 -> 二维数组

所以我是初学者;任务是将给定的字符串转换为数组,字符串总是以第一个字符作为行数,第二个字符作为列数。


我的问题是解决如何将字符串 '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]);

          }

        }

      }

    }


九州编程
浏览 170回答 2
2回答

芜湖不芜

您需要为 for 循环实现一个计数器以遍历输入字符串。你现在正在做的是用你的字符串的第三个元素填充你的二维数组。一种解决方案是只声明一个变量 i = 2,并为内部 for 循环的每次传递增加它。int i = 2for (int col = 0; col < acols; col++){&nbsp; &nbsp; for (int row = 0; row < arows;row++){&nbsp; &nbsp; &nbsp; &nbsp; cells[row][col] = Integer.parseInt(s[i]);&nbsp; &nbsp; &nbsp; &nbsp; i++;&nbsp; &nbsp; }}编辑:删除 <= 在行循环中,将索引的初始值更改为 2

慕仙森

这就是解决方案,你必须再放一个迭代器,并把它初始化为2,这样就跳过了s[]的前两个元素int i = 2;for (int col = 0; col < acols; col++){&nbsp; &nbsp; for (int row = 0; row < arows;row++){&nbsp; &nbsp; &nbsp; &nbsp; cells[row][col] = Integer.parseInt(s[i]);&nbsp; &nbsp; &nbsp; &nbsp; i++;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java