【问题标题】:Copying a 2d character array int another 2d character array将二维字符数组复制到另一个二维字符数组
【发布时间】:2014-04-07 00:24:36
【问题描述】:

我正在尝试通过类的构造函数将二维字符数组复制到另一个二维字符数组中。原始数组从外部文本文件中读取,然后转换为二维数组。但是我似乎无法从另一个类中读取这个二维数组。下面列出了我正在尝试的代码,它是搜索类的构造函数。谢谢。

char[][] arraytwo;

public search(char[][] inarray)
{
    for(int i = 0; i < inarray.length; i++)
    {
        String row = inarray.;
        for(int j = 0; j < inarray[i].length; j++)
        {
            arraytwo[i][j] = inarray.charAt(c);
        }
    }
}

【问题讨论】:

    标签: java arrays for-loop 2d charat


    【解决方案1】:

    你的内部 for 循环中的语句应该是:

    arraytwo[i][j] = inarray[i][j];
    

    无论是读取数组还是写入数组,都使用相同的语法对数组进行索引。 (charAt 是您在 String 上调用的方法,而不是数组。)


    另外,你不需要这条线

    String row = inarray.;
    

    那行还是有语法错误。

    【讨论】:

    • 感谢您的回复,对语法错误感到抱歉。但是,当我调用要在另一种方法中打印的数组时,我得到一个 java.lang.NullPointerException 错误,我错过了什么吗?
    • @Tyler 哦,是的,您需要为arraytwo 创建一个新数组。尺寸应与inarray 相同。
    • 所以我的 arraytwo 应该填充外部文本文件中的字符,这些字符已从另一个类(驱动程序)的数组中读入 inarray。我现在需要将 arraytwo 设置为等于另一个数组,然后调用该数组,如果是这样我需要再次循环以填充第三个数组吗?
    • @Tyler 不,您不需要第三个数组。您只需为arraytwo 创建一个新数组(使用new 关键字)。您已声明了对 arraytwo 的引用,但尚未创建对象。
    【解决方案2】:

    代码格式错误,你复制错了:

    String row = inarray.;
    

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 2022-06-16
      • 2021-06-12
      • 2018-05-17
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多