我的老师用两个段落解释了二维数组。除了那之外,他没有给我任何关于如何创建它们的信息,现在我必须做一个任务。
我已经阅读了很多关于它的内容,我有点理解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();
}
}
}
到目前为止,我只是想获取输入并存储它。
(请尽量耐心和彻底地对我说!编码不是我最强的观点,但我正在努力学习。)任何帮助都会令人惊叹!提前致谢。 :)
答案 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的好习惯,不使用大写字母表示属性和变量(仅用于类名)