在编码方面,我非常喜欢新手。我想要完成的是从txt文件加载成绩并将它们放入现有数组中。
我实际上已经解决了这个问题。在程序中,数组确实保留了值。但是当我打印它们时,我得到了对象引用又名[I @ 5c647e05而不是数组。以下是我的代码。
public static void main(String[] args) {
int[] list = new int[15];
Scanner in = null; // create a scanner object
loadGrades(in, list);
System.out.println(list);
}
public static void loadGrades(Scanner in, int[] list) {
int grades; // int variable
try { // try
in = new Scanner(new FileReader("Proj5Data.txt"));// change filename
} catch (FileNotFoundException ex) { // catch
System.out.println("File not found");
System.exit(1);
}
for (int i = 0; i < list.length; i++) {
grades = in.nextInt(); // var
list[i] = grades ;// put the int in the array at the counter value
}
in.close();
}
将结果打印为:
[I@5c647e05
BUILD SUCCESSFUL (total time: 0 seconds)
答案 0 :(得分:0)
您无法在Java中打印列表中的内容。您需要循环遍历数组的内容并单独打印它们。
for(int i : list){
System.out.println(i);
}
答案 1 :(得分:0)
当您在幕后打印数组时,正在调用方法toString()
并且它不会打印数组的内容(这太糟糕了IMO)。但您可以使用库Arrays
轻松克服它:
System.out.println(Arrays.toString(list));
答案 2 :(得分:0)
System.out.println(list)使用.toString()方法来解析要打印的内容。 您可以使用Arrays.toString(list)或逐个打印。
答案 3 :(得分:-1)
所以你们给我的所有方法确实有效。但我最终只使用printf将它们打印出来。谢谢你的帮助。