gpt4 book ai didi

Java:每n秒计算来自InputStreamReader的连续打印数字的总和?

转载 作者:行者123 更新时间:2023-12-01 09:24:19 25 4
gpt4 key购买 nike

我使用 InputStreamReader 从 shell 终端检索值,该终端在运行时不断生成输出。

现在,我使用子字符串将结果打印到控制台:System.out.println(inputStr.substring(inputStr.lastIndexOf("")+1));,因为它将打印我需要的输出的最后一位数字。

如果输出连续运行,可能每秒打印 1 次,我如何编写 Java 代码来计算每 N 秒所有打印数字的总和?(假设为 20 秒)?

这是迄今为止的源代码:

import java.io.InputStreamReader;
import java.io.BufferedReader;

public class fooShell {

public static void main(String[] args) {

InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bufReader = new BufferedReader(isReader);
while(true){
try {
String inputStr = bufReader.readLine();
if(inputStr == null) {
break;
}
System.out.println(inputStr.substring(inputStr.lastIndexOf(" ")+1));
}
catch (Exception e) {
System.err.println("Error "+e);
}
}
}

}

最佳答案

将不断更新的总和存储为类变量,并在每次轮询 InputStreamReader 时更新它。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class FooShell
{
int runningTotal;

FooShell()
{
runningTotal = 0;
}

public static void main(String[] args)
{

FooShell fooShell = new FooShell();
InputStreamReader isReader = new InputStreamReader(System.in);
BufferedReader bufReader = new BufferedReader(isReader);
while (true)
{
try
{
String inputStr = bufReader.readLine();
if (inputStr == null)
{
break;
}
int currentNumber = Integer
.parseInt(inputStr.substring(inputStr.lastIndexOf(" ") + 1));
fooShell.runningTotal += currentNumber;
System.out.println(currentNumber);
}
catch (Exception e)
{
System.err.println("Error " + e);
}
}
}
}

关于Java:每n秒计算来自InputStreamReader的连续打印数字的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960907/

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