Я очень люблю новичков, когда дело доходит до кодирования. То, что я пытаюсь выполнить, - загрузить оценки из txt файла и поместить их в существующий массив.
Я на самом деле решил это. и в программе массив сохраняет значения. Но когда я их распечатал, я получаю ссылку на объект aka [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)
Когда вы печатаете массив за кулисами, вызывается метод toString()
, и он не печатает содержимое массива (что очень плохо ИМО). Но вы можете легко преодолеть это с помощью библиотеки Arrays
:
System.out.println(Arrays.toString(list));
System.out.println(list) использует метод.toString() для разрешения печати. Вы можете использовать Arrays.toString (список) или распечатать его по одному.
Вы не можете распечатать содержимое списка, как в Java. Вам нужно перебрать содержимое массива и распечатать его по отдельности.
for(int i : list){
System.out.println(i);
}
Так что все методы, которые вы мне дали, действительно сработали. Но я закончил тем, что использовал printf для печати. Спасибо за помощь.