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

时间:2017-07-06 23:30:44

标签: java arrays

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

TLDR:我如何从一个.txt文件中读取多个字符串和基元,将该数据填充到我的类字段中,然后创建一个对象数组并将*打印到控制台,以便对我创建的“矩形”对象进行符号化处理。说.txt文件?

2 个答案:

答案 0 :(得分:0)

查看以下相关问题:Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods

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

此外,Scanner#next会忽略空格,但它不会忽略原语,例如布尔值或整数,因为它们是有效的标记。

答案 1 :(得分:-1)

当您使用nextLine()获取字符串时,必须将其拆分为:

  • 类似String#substing(int begin,int end)more information
  • 或者你使用String#split(“”)并得到一个字符串数组,它在索引i中包含第i个单词。 more information
  • 我认为也可以使用nextInt()获取您的数据,而您的阅读器只会为您提供第一条数据。使用另一个nextInt()第二个数字,依此类推。但我不确定这个解决方案(但你可以试试,通过)

之后,您可以将其转换为您想要的数据类型。例如,如果您想要double,则可以使用Double.parseDouble(stringVar)

最后你创建了你的对象,你只需找到一种方法来打印它。