当前位置: 首页 > 知识库问答 >
问题:

有没有一种方法可以使用方法从Java文件中读取和计算数据?

崔恺
2023-03-14

在我的课堂上,我们使用方法来计算文本文件中的数据。如果我有一个看起来像这样的文件:

Bob
25
Molly
30
Dylan
10
Mike
65

有没有无论如何从文件中提取此数据,然后将其发送到一个方法来计算,然后返回该计算以显示在main上?我很困惑Java如何跳过每一行,计算数字而不是人名。我在考虑使用inputFile.nextDouble();inputFile.nextLine();。但是,如果我应该将这些文本文件行变量读取为双打,我如何能够设置字符串读取文本文件中的行?抱歉问了你这么多问题我纠结了很久快把我逼疯了

共有2个答案

傅振濂
2023-03-14

我建议您使用ArrayList阅读完整文件:

Scanner s = new Scanner(new File(//Here the path of your file));

int number;
String name;

ArrayList<String> list = new ArrayList<String>();

while (s.hasNext())
{
    list.add(s.nextLine());
}

现在您拥有了文件的所有行(作为字符串),因此现在您可以使用其中的完整数据进行操作。

此外,数字在偶数行中,因此您可以使用循环遍历所有行,并检查您现在使用的行是否为偶数。

for(int i = 0; i < list.size(); i++)
{
   if(i%2 == 0)
   {
      number = Integer.parseInt(list.get(i));
      //You can use the references to your methods with this number
   }
   else
   {
     name = list.get(i);
   }
}

使用%,您将获得除法的其余部分(我使用的是对数字的属性)。使用我nteger.parseInt,您将解析您的Stringint

所以现在你将可以使用这些数字来操作或者任何你想要的东西。

编辑:这里有一个不使用ArrayList的示例。在这种情况下,我将使用nextLine()nextInt()函数:

Scanner s = new Scanner(new File(//Here the path of your file));
int count = 0;
int number;
int name;

while(s.hasNext())
{
    if(i%2 == 0)
    {
        number = s.nextInt();
        s.nextLine();
        //You can use the references to your methods with this number
    }
    else
    {
        name = s.nextLine();
    }
    count = count + 1;
}

如果您对我为什么在number之后使用s.nextLine()而不存储任何值有疑问,您可以查看我对这个问题的答案:为什么扫描仪输入不工作?

期待对你有所帮助!

终子昂
2023-03-14

您应该交替使用nextLine()nextInt()

Scanner sc=new Scanner(new File(/* Path to the file*/));
int i=0;
while(sc.hasNext())
{
    if(i==0)
    {
        name=sc.nextLine();
    }
    else
    {
        number=sc.nextInt();
    }
    i=1-i;
}
 类似资料:
  • 问题内容: 有谁知道我可以使用node.js读取文件元数据的方法吗?对于 例如,我想读的“细节” jpeg格式的选项卡上的“注释”属性 的文件(在Windows计算机上)。 问题答案: 有许多NPM包可用于读取EXIF数据。例如:

  • 问题内容: 我正在编写小型且非常干燥的框架,该框架高度依赖元数据。我想知道是否有一种方法来获取方法参数名称,即给定一些方法 得到的字符串和。 我知道我可以注释参数,但是那不是很好。 问题答案: 我们为包含参数名称的String[]的方法创建了一个自定义注释。与必须注释每个单独的参数相比,此方法感觉易于管理。我们计划添加构建时检查,以确保带注释的参数名称的数量与参数的数量匹配,因为这是我们所需要的。

  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 我正在尝试使用 matlab 从 netCDF 文件中读取时间坐标数据。我有一个 netCDF 文件(我创建的),该文件具有一个双精度格式的时间变量,对应于特定时间的小时数(见下文)。 变量属性: 当我使用 ncread) 将时间变量读取到 matlab 中时,它只是打印出一个整数,例如,1。但是,如果我使用“ncdump”浏览文件,我会在其坐标时间中看到时间变量,例如 2002-01-01 01

  • 在我的空手道测试中,我需要将响应ID写到txt文件(或任何其他文件格式,如JSON),我想知道它是否有能力做到这一点,我在文档中没有看到其他的。如果是no,那么是否有一个简单的JavaScript函数来执行此操作?

  • 问题内容: 有没有一种方法可以在Java中随机获取HashMap的值? 问题答案: 这有效: 如果您希望随机值不是类型,只需在最后一行添加强制类型转换即可。因此,如果声明为: 最后一行可以是: 下面的代码 无效 ,总是返回s 数组,不能将其强制转换为。