我试图将ArrayList中的所有值加起来,但是没有任何东西允许我得到和。我必须找到从文本文件中提取的数字的平均值。
public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\[REDACTED]\\Desktop\\mbox.txt");
Scanner inputFile = new Scanner(file);
ArrayList<Integer> ConfidenceLevels = new ArrayList<>();
String [] DSPAM;
String line;
while(inputFile.hasNext())
{
line = inputFile.nextLine();
if(line.startsWith("X-DSPAM-Confidence:"))
{
DSPAM = line.split(" 0");
int x = Integer.parseInt(DSPAM[1].trim());
ConfidenceLevels.add(x);
}
}
System.out.println(ConfidenceLevels);
System.out.println(ConfidenceLevels.size());
}发布于 2022-04-17 02:25:40
您只是在列表中添加元素。如果您需要它们的和,您可以创建一个Integer变量并添加它。
public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\[REDACTED]\\Desktop\\mbox.txt");
Scanner inputFile = new Scanner(file);
Integer confidenceLevelsSum = 0;
String [] DSPAM;
String line;
while(inputFile.hasNext())
{
line = inputFile.nextLine();
if(line.startsWith("X-DSPAM-Confidence:"))
{
DSPAM = line.split(" 0");
// Check if it's null before trying to convert it.
if (DSPAM[1] == null) {
continue;
}
int x = Integer.parseInt(DSPAM[1].trim());
confidenceLevelsSum += x;
}
}
System.out.println(confidenceLevelsSum);
}发布于 2022-04-17 02:35:25
您可以尝试使用IntSummaryStatistics,您可以得到这个列表的最小/最大值/平均值/和。
IntSummaryStatistics intSummaryStatistics = ConfidenceLevels.stream().mapToInt(Integer::intValue).summaryStatistics();
System.out.println(intSummaryStatistics.getAverage());
System.out.println(intSummaryStatistics.getMin());
System.out.println(intSummaryStatistics.getMax());
System.out.println(intSummaryStatistics.getSum());https://stackoverflow.com/questions/71898805
复制相似问题