创建一个二维字符串数组anArray[2][2]。

4

我是一名有用的助手,可以为您翻译文本。

我目前正在进行自学Java课程,并在我的一个作业中完全被卡住了,请问有人能给我一些指导吗?请记住我完全是Java的新手,所以需要尽可能简单易懂。

问题:3.创建一个名为TwoDimArray的Java程序,并实现以下内容:

Create a two dimensional string array anArray[2][2].
Assign values to the 2d array containing any Country and associated colour. 

    Example:

    France Blue 

    Ireland Green 

Output the values of the 2d array using nested for loops.

我所想出的代码也无法工作:
public class TwoDimArray {
  public static void main(String[] args) {
    char Ireland = 0;
    char Green = 1;
    char England = 2;
    char White = 3;
    char firstArray[][] = {{Ireland},{Green}};
    char secondArray[][] = {{England},{White}};

    System.out.println();
    display(firstArray);
    System.out.println();
    display(secondArray);

  }

  public static void display(char a[][]) {
    for (char row = 0; row < a .length; row++) {
      for (char col = 0; col < a [row] .length; col++) {
        System.out.print(a[row][col] + " ");
      }

      System.out.println();
    }
  }
}

有谁能给我一些提示吗?我在网上找不到任何有用的东西,所以想来这里问问。 先提前感谢。


1
创建一个二维字符串数组。你做到了吗? - Alexis C.
你也可以创建字符串数组。 - Mike 'Pomax' Kamermans
我完全不知道我怎么会错过那个,我会去处理的。谢谢大家。 - ParamoreBaby
我认为这会对你有所帮助。Java中的二维字符串数组 - suraj_fale
1个回答

8

看起来这就是你想要的。

    int columns = 2;
    int rows = 2;

    String[][] newArray = new String[columns][rows];
    newArray[0][0] = "France";
    newArray[0][1] = "Blue";

    newArray[1][0] = "Ireland";
    newArray[1][1] = "Green";

    for(int i = 0; i < rows; i++){
        for(int j = 0; j < columns; j++){
            System.out.println(newArray[i][j]);
        }
    }

这里我将解释一下代码:

这声明了您的新2D数组的大小。在Java(以及大多数编程语言)中,您的第一个值从0开始,因此该数组的大小实际上是2行2列。

    int columns = 2;
    int rows = 2;

在这里,您使用类型String[][]创建一个由[rows][columns]定义大小的新2D数组。

    String[][] newArray = new String[columns][rows];

您可以通过在数组中的位置来分配值。
    newArray[0][0] = "France";
    newArray[0][1] = "Blue";

    newArray[1][0] = "Ireland";
    newArray[1][1] = "Green";

通过循环遍历 i 将遍历所有行,而通过循环遍历 j 将遍历所有列。此代码将循环遍历所有行和列,并输出每个索引中的值。

    for(int i = 0; i < rows; i++){
        for(int j = 0; j < columns; j++){
            System.out.println(newArray[i][j]);
        }
    }

或者,赋值也可以是一行代码:

    String[][] newArray = {{"France", "Blue"}, {"Ireland", "Green"}};

但我不喜欢这种方式,因为当你开始处理更大的数据集(比如有许多列的10,000个以上的数据点)时,像这样硬编码会变得很粗糙。


1
我给你的作业是不要以过程方式编写,而要以面向对象的方式编写 ;-). 我认为这也是练习所希望的。 - theGreenCabbage
有任何回复?反馈?问题吗? - theGreenCabbage
非常感谢您的帮助!我现在完全明白了。 - ParamoreBaby
好的,现在客观地来做吧!我会给你一个实例变量,它是String[][] newArray - theGreenCabbage
1
为什么是String[][] newArray = new String[columns][rows];而不是String[][] newArray = new String[rows][columns];?我以为在初始化和访问二维数组时,行应该在列之前。 - travisjayday

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接