gpt4 book ai didi

java - 如何使用java打印起始行号

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:41 24 4
gpt4 key购买 nike

在此代码中,我试图打印起始行号。在这里,我正在读取文本文件中的值并将这些值相加。但我正在尝试从开始计数的地方获取行号..

我该怎么做?

代码

import java.io.*;

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

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;
int sum=0;
int startline=0;
System.out.println(param2+": Is in");
while ((strLine = br.readLine()) != null)
{
++i;
startline = i;
int line = Integer.parseInt(strLine);
sum=sum+line;
System.out.println("Sum= "+sum);
if(sum>=param2)
{
/* System.out.println("line number : "+i);*/
System.out.println("Start line number :"+startline+" End line number:" +i);
sum =0;
}
}
in.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
}

read.txt 文件

1
2
3
4
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3

我现在得到的输出是这样的。

Sum= 1
Sum= 3
Sum= 6
Sum= 10
Start line number :4 End line number:4
Sum= 1
Sum= 3
Sum= 6
Sum= 7
Start line number :8 End line number:8
Sum= 2
Sum= 5
Sum= 6
Sum= 8
Start line number :12 End line number:12
Sum= 3
Sum= 4
Sum= 6
Sum= 9
Start line number :16 End line number:16
Sum= 1
Sum= 3
Sum= 6
Sum= 7
Start line number :20 End line number:20
Sum= 2
Sum= 5
Sum= 6
Sum= 8
Start line number :24 End line number:24
Sum= 3

但应该是

    Sum= 1
Sum= 3
Sum= 6
Sum= 10
Start line number :1 End line number:4
Sum= 1
Sum= 3
Sum= 6
Sum= 7
Start line number :5 End line number:8
Sum= 2
Sum= 5
Sum= 6
Sum= 8
Start line number :9 End line number:12
Sum= 3
Sum= 4
Sum= 6
Sum= 9
Start line number :13 End line number:16
Sum= 1
Sum= 3
Sum= 6
Sum= 7
Start line number :17 End line number:20
Sum= 2
Sum= 5
Sum= 6
Sum= 8
Start line number :21 End line number:24
Sum= 3

最佳答案

您没有在任何地方重置 startline。使用以下内容:

       while ((strLine = br.readLine()) != null)   
{
++i;
if(startline == 0) // set startline only if startline is zero, which will happen the first time and everytime you've printed the status
startline = i;
int line = Integer.parseInt(strLine);
sum=sum+line;
System.out.println("Sum= "+sum);
if(sum>=param2)
{
/* System.out.println("line number : "+i);*/
System.out.println("Start line number :"+startline+" End line number:" +i);
sum =0;
startline = 0; // reset startline here
}
}

关于java - 如何使用java打印起始行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17696881/

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