您好,我正在研究如何创建新数组并存储每次for循环迭代时从用户获得的两个值。因为它从1-4开始,所以我想创建4个数组,并且每次附加用户在该迭代中提供的值。如果最好创建一个存储所有值的大数组,请分享,但是我想保持代码简单。下面的示例显示了我的代码,数组部分是当前存在问题的部分。
import java.util.Scanner;
public class Arrays{
public static void main(String args[])
String array1[];
String array2[];
String array3[];
String array4[];
for (int i=1; i <5; i++) {
System.out.println("What is track " + i);
Scanner sc = new Scanner(System.in);
String track = sc.nextLine();
System.out.println("How many thousands of times has it been downloaded? ");
Scanner sd = new Scanner(System.in);
String time = sd.nextLine();
array1[0]=track;
array1[1]=time;
}
System.out.println(arrays1);
System.out.println(arrays2);
System.out.println(arrays3);
System.out.println(arrays4);
}
答案 0 :(得分:0)
您可以使用二维数组,在这种情况下,您将拥有一个大小为4的数组,其中每个索引将保存一个大小为2的数组。然后,您可以在i
循环中使用for
的值来访问外部数组。我还建议仅使用1个扫描仪,并将其放在循环之外,因为无需为for
循环的每次迭代创建新的扫描仪。您还应避免将整数值硬编码到代码中,而应使用变量,因为这些值以后可能会发生变化。例如,如果要从用户那里获取6组值,则必须遍历代码并手动更改所有4个条目,而不是仅为此使用变量并更改变量值。
import java.util.Scanner;
import java.util.Arrays;
public class Arrays1{
public static void main(String args[]){
String[][] array = new String[4][2];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 4; i++) {
System.out.println("What is track " + i + 1);
array[i][0] = sc.nextLine();
System.out.println("How many thousands of times has it been downloaded? ");
array[i][1] = sc.nextLine();
}
sc.close();
// More elegant to loop here and print these values instead of hardcoding the indices
System.out.println(Arrays.toString(array[0]));
System.out.println(Arrays.toString(array[1]));
System.out.println(Arrays.toString(array[2]));
System.out.println(Arrays.toString(array[3]));
}
}
答案 1 :(得分:0)
(1)使用二维数组
(2)使用1个Scanner对象
String[][] array = new String[4][2];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
System.out.println("What is track " + (i + 1));
array[i][0] = sc.nextLine();
System.out.println("How many thousands of times has it been downloaded? ");
array[i][1] = sc.nextLine();
}
sc.close();
for (int i = 0; i < array.length; i++) {
System.out.print("track" + (i + 1) + " = " + array[i][0]);
System.out.println(", downloaded = " + array[i][1]);
}