【问题标题】:How to read in a text file, line by line, and fill an object array with the information? [closed]如何逐行读取文本文件并用信息填充对象数组? [关闭]
【发布时间】:2013-03-02 18:27:11
【问题描述】:

想通了... 我不敢相信我花了这么长时间才得到这个:

        int id = inputFile.nextInt();
        String title = inputFile.next();
        String isbn = inputFile.next();
        String author = inputFile.next();
        String category = inputFile.next();
        char catagories = category.charAt(0);

【问题讨论】:

  • Stackoverflow 不是为了完成你的家庭作业... :-/
  • 我明白这一点。我希望能朝着正确的方向前进。还有@zvzdhk,我不确定我是否正确地做书readInBooks = new Book....。
  • 运行程序时会发生什么?它有效吗?如果不是,您希望它做什么,它会做什么?
  • 考虑使用inputFile.nextLine() 一次读取每一行,然后考虑拆分使用String 的split(" ") 方法返回的字符串并使用构造函数参数中返回的数组标记。
  • @trama:想一想当您调用nextLine() 时会发生什么,而您只需要一行中的单个标记,并且每行数据包含多个标记,每个标记都是书籍信息的组成部分。从逻辑上讲,您应该能够弄清楚您在这里做错了什么。这更像是简单地思考问题,而您并没有这样做。

标签: java


【解决方案1】:

输入是

96385 This_Book 0998706482 Smith Non-Fiction

但你正在阅读它使用

 new Book(inputFile.nextInt(), inputFile.nextLine(), inputFile.nextLine(), inputFile.nextLine(), inputFile.nextLine())

所以你读的是一个 int,然后是整行,然后是整行,然后是整行,然后是整行。

使用next() 而不是nextLine(),因为您需要下一个令牌,而不是下一行。

【讨论】:

  • 我尝试这样做,但它要求我将 Book 构造函数更改为 (int, String, String, String, String)。我需要最后一个是字符。
  • @trama:您可以使用 String 的一种方法 charAt(...) 从字符串中轻松提取字符。 1+ 到正确答案。
  • 这没有意义。最后一个参数已经是一个字符串,因为您传递的是一个字符串input.nextLine()。如果要传递一个字符,则将最后一个标记转换为字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多