在二维数组中输入和存储字符串

时间:2013-09-18 23:51:00

标签: java arrays sorting 2d

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

我已经阅读了很多关于它的内容,我有点理解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();

        }
    }
}

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

(请尽量耐心和彻底地对我说!编码不是我最强的观点,但我正在努力学习。)任何帮助都会令人惊叹!提前致谢。 :)

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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的好习惯,不使用大写字母表示属性和变量(仅用于类名)