0

我的老师用两段文字解释了二维数组。除此之外,他没有给我任何关于如何创建它们的信息,现在我必须做一个任务。

我已经阅读了很多关于它的内容,并且我有点理解 2D 数组是如何像数组数组一样的,但我仍然对如何应用它完全感到困惑。

任务本身非常简单。它要求我创建一个程序,向用户询问十个犯罪记录(姓名、犯罪记录、年份)。该程序将记录存储在二维数组中,然后使用选择排序对它们进行排序。

我知道这可能是错误的,但这是我目前所读到的内容:

    public static void main(String[] args)throws IOException {

    //create array
    String[][] Criminals = new String[10][3]; // create 3 columns, 10 rows

    int i, j;
    int smallest; //smallest is the current smallest element
    int temp; //make an element swap
    String line;

    //loop to request to fill array   
    for (int row = 1; row < Criminals.length; row++){
        for (int col = 1; col < Criminals[row].length; col++){
            System.out.print("Enter a criminal name: ");
            Criminals[row][col] = br.readLine();

        }
    }
}

到目前为止,我只是想获取输入并存储它。

(请尽量对我耐心和彻底!编码不是我的强项,但我正在努力学习。)任何帮助都会很棒!提前致谢。:)

4

2 回答 2

1

大多数情况下看起来都很好。您应该从 0 开始索引数组,而不是 1。您当前的代码有效,但我猜您不希望所有条目都出现相同的提示。因此,使用单个循环可能是一个好主意:

for (int row = 0; row < Criminals.length; row++) {
    System.out.print("Enter a criminal name: ");
    Criminals[row][0] = br.readLine();

    System.out.print("Enter a crime: ");
    Criminals[row][1] = br.readLine();

    System.out.print("Enter a year: ");
    Criminals[row][2] = br.readLine();
}
于 2013-09-19T00:10:29.257 回答
1
import java.util.Scanner;


public class Main {


    public static void main(String[] args) {



        Scanner in = new Scanner(System.in);

             //create array
            String[][] criminals = new String[10][3]; // create 3 columns, 10 rows

            int i, j;
            int smallest; //smallest is the current smallest element
            int temp; //make an element swap
            String line;

            //loop to request to fill array   
            for (int row = 0; row < criminals.length; row++){
                    System.out.print("Enter a criminal name: ");
                    while(in.hasNext()){
                    criminals[row][0] = in.nextLine();
                    System.out.print("Enter a crime: ");
                    criminals[row][1] = in.nextLine();
                    System.out.print("Enter a year: ");
                    criminals[row][2] = in.nextLine();
                    }


            }

    }


}

这将打印用户需要的命令并将其存储在犯罪分子中。最后你可以排序。由于您没有提供任何信息,您希望它如何排序,我将把它留给您去做。

PS:我将 2d 数组名称从“犯罪分子”更改为“犯罪分子”,Java 的一个好习惯是不要将大写字用于属性和变量(仅用于类名)

于 2013-09-19T00:24:54.047 回答