提问者:小点点

从文件中读取字符串和基元数据类型并创建对象


我正在从文件中读取并使用扫描程序读取输入,但很难理解如何应用 next() 和 nextLine() 将数据从文本分配给变量,以发送到我的矩形类构造函数以将这些对象打印到控制台。我正在解析输入(下一个...等等),但是当字符串和原始数据在扫描仪读取文本文件的多行上在同一行上混合时,您如何处理这个问题?我是否为 int 和 String 创建多个扫描程序循环来遍历所有内容,以确保读取的数据正确分配给数组元素?

TLDR:我如何从一个.txt文件中读取多个字符串和原语,将这些数据填充到我的类字段中,然后创建一个对象数组,并将*打印到控制台,以表示我从所述.txt文件中创建的“矩形”对象?


共2个答案

匿名用户

查看此相关问题:扫描程序在使用next(),nextInt()或其他nextFoo()方法后跳过nextLine()

老实说,我不明白您对文本输入的解释,但这可能是因为Scanner#nextInt方法不消耗最后一个换行符(' \n ')。如果是这种情况,解决方法是调用另一个nextLine()来使用它。

此外,Scanner#next确实忽略了空格,但它不会忽略布尔值或整数等基元,因为它们是有效的标记。

匿名用户

当您使用nextLine()获取字符串时,必须使用以下命令对其进行拆分:

  • 类似于String#substing(int begin,int end)的更多信息
  • 或者使用String#split(“”)获取字符串数组,该数组在索引i中包含第i个单词。更多信息
  • 我认为,使用nextInt()获取数据也是可能的,您的Reader只会给您第一条数据。使用另一个nextInt()第二个数字,依此类推。但我不确定这个解决方案(但您可以尝试,通过)

之后,您可以将其转换为您想要的数据类型。例如,如果你想要一个双精度,你可以使用Double.parseDouble(stringVar)。

最后,您创建对象,只需找到打印它的方法。