gpt4 book ai didi

java - 如何计算文件中的行值?

转载 作者:行者123 更新时间:2023-12-01 14:19:58 26 4
gpt4 key购买 nike

我正在尝试读取txt文件并添加行值,即我将参数传递给java代码。它应该打印添加值的行号

我正在将文件名和 int 值传递给 java 程序。

例如:read.txt 包含

2
2
3
4
4
6
7
7
8
8
9
0

现在我将参数传递为 5,因此它应该将行相加并打印行号,如果总和 >= 5,它应该打印行号

对于前任2+2+3 = 7 > 5因为最后加起来的数字是 3 并且位于第 3 行所以它应该打印行号 3

4+4 = 8 > 5所以它应该打印行号 3

6 等于 > 5所以它应该打印行号 6因为它位于第 6 行

等等..我该怎么做?

这是我尝试过的

代码:

import java.io.*;

class CountR
{
public static void main(String args[])
{
setForSum("read.txt",3);
}

public static void setForSum(String filename,int param2)
{
try
{
FileInputStream fstream = new FileInputStream(filename);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
int i = 0;
while ((strLine = br.readLine()) != null)
{
i++;
if(param2 == Integer.parseInt(strLine))
{
System.out.println(i);
}
}
in.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
}

最佳答案

第一件事我注意到,这个if语句只有在您准确地到达指定的数字时才会起作用。

 if(param2 == Integer.parseInt(strLine))
{
System.out.println(i);
}

应该是:

 if(param2 >= Integer.parseInt(strLine))
{
System.out.println(i);
}

其次,您没有对这些值进行总计,是吗?您只是读取每个值,因此在循环之外声明一些值:

int currentTotal = 0;

然后在循环中:

currentTotal += Integer.valueOf(strLine);

然后在语句中使用 currentTotal:

if(currentTotal >= Integer.parseInt(strLine))
{
System.out.println("Line Number " + i);
}

正如 Heuster 提到的,请确保在 if 语句中将 currentTotal 重置回 0!

关于java - 如何计算文件中的行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com