我的代码没有正确提取我的文本文件/数组列表?

7cjasjjr  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(435)

这个问题在这里已经有答案了

如何打印java对象而不获取“sometype@2f92e0f4”? (10个答案)
上个月关门了。
我的程序没有从从文本文件中提取的arraylist打印出详细信息。文本文件详细信息以共享一个相似性的数据库方式分为两部分。
我知道我把其他的课程都删掉了,但我想知道它在打印什么,或者是从哪里来的?
我的文本文件/arraylist的程序输出:
中等以上学生:courseworkstudent@53f65459 courseworkstudent@3b088d51
学生低于平均水平:courseworkstudent@1786dec2 courseworkstudent@74650e52 courseworkstudent@15d0c81b
主要客户

  1. public class MainClient {
  2. public static int choice;
  3. public static Scanner kb = new Scanner(System.in);
  4. ArrayList<Student> courses = new ArrayList<Student>();
  5. ArrayList<Student> students = new ArrayList<Student>();
  6. public void studentTxtRead() {//Reading of Student.txt
  7. Scanner studFile = null;
  8. try {
  9. studFile = new Scanner(new File("Student.txt"));
  10. while(studFile.hasNextLine()){
  11. String line = studFile.nextLine();
  12. String[] data = line.split("\\s+");
  13. students.add(new Student(data[0], data[1], data[2], Long.parseLong(data[3])
  14. ,Integer.parseInt(data[4]),Integer.parseInt(data[5]), Integer.parseInt(data[6])));
  15. }//end of while loop
  16. }//end of try loop
  17. catch(FileNotFoundException ex){
  18. System.out.println("FILE NOT FOUND");
  19. }
  20. studFile.close();
  21. }//end of studentTxtRead
  22. public void courseworkStudentAvg(){
  23. double total = 0.0;
  24. int count = 0;
  25. for(int i = 0; i < courses.size(); i++){
  26. if(courses.get(i) instanceof CourseworkStudent) {
  27. CourseworkStudent courseW = (CourseworkStudent)courses.get(i);
  28. total += courseW.getCourseMarks();
  29. count++;
  30. }//end of if
  31. }//end of for
  32. double avg = total/count;
  33. System.out.println("Students above averge: ");
  34. for(int i=0; i<courses.size(); i++) {
  35. if(courses.get(i)instanceof CourseworkStudent) {
  36. CourseworkStudent courseW =(CourseworkStudent) courses.get(i);
  37. if(courseW.getCourseMarks()> avg) {
  38. System.out.println(courseW);
  39. }//end of if
  40. }//end of if
  41. }//end of for
  42. System.out.println("\nStudent below average: ");
  43. for(int i =0; i<courses.size(); i++) {
  44. if(courses.get(i) instanceof CourseworkStudent) {
  45. CourseworkStudent courseW = (CourseworkStudent) courses.get(i);
  46. if(courseW.getCourseMarks()< avg) {
  47. System.out.println(courseW);
  48. }//end of if
  49. }//end of if
  50. }//end of for
  51. }//end of courseworkStudentAvg
  52. public void calculateCouGradeMarks(){//calculate grade/marks for coursework
  53. for(int i = 0; i < courses.size(); i++){// Calculate grades for Course Student
  54. if(courses.get(i) instanceof CourseworkStudent){
  55. CourseworkStudent courW = (CourseworkStudent) courses.get(i);
  56. courW.CGrading();
  57. }
  58. }
  59. }//end of CalculateCouGradeMarks
ckx4rj1h

ckx4rj1h1#

将tostring()方法添加到courseworkstudent类

8oomwypt

8oomwypt2#

您正在尝试打印的对象示例 CourseworkStudent . 这些对象被描述为。 CourseworkStudent@53f65459 .
这是因为 System.out.println() 无法将对象解释为 String . 所以它会打印一个对象标识符。
为了打印内容,您需要实现 toString() 函数,并精确地定义对象作为字符串的外观。

相关问题