首页 > 解决方案 > 为什么我的程序不打印 txt 文件输入?

问题描述

这是我得到的输出:

这是我得到的输出

此代码应该读取文本文件并打印 CPM 为 5 次 Top CPM 测量值的所有实例。该代码使用单独的类来格式化 (.getDateTime & .getCountsPerMinute) 出于某种原因,该代码不会打印格式化的文本文件。我整天都在搞砸它,似乎无法弄清楚我哪里出错了。任何指示或帮助将不胜感激。

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.File;

public class geiger {
    public static final int COUNT_WINDOW = 5;
    public static void main(String[] args) throws Exception {
        try {
            Scanner sc = new Scanner(new File("7_14_2019.txt"));
            ArrayList<RadiationSample> samples = new ArrayList<RadiationSample>();
            String lineSeparator = System.getProperty("line.separator");
            sc.useDelimiter(lineSeparator);
            String dataLineTag = ".*Every Minute.*";
            int maxCounts = 0;
            while (sc.hasNext()) {
                String line = sc.next();
                if (line.matches(dataLineTag)) {
                    String[] parsed = line.split(",");
                    String dateTime = parsed[0];
                    int counts = Integer.parseInt(parsed[2]);
                    RadiationSample sample = new RadiationSample(dateTime, counts);
                    samples.add(sample);
                    if (counts > maxCounts) maxCounts = counts;
                }
            }
            System.out.println("    Date    Time    Counts Per Minute");
            for (int i = 0; i < samples.size(); i++) {
                if (samples.get(i).getCountsPerMinute() >= maxCounts - COUNT_WINDOW) {
                    System.out.println(samples.get(i).getDateTime()
                            + "             " + samples.get(i).getCountsPerMinute());
                }
            }
            sc.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

单独的班级

public class RadiationSample {
    private String dateTime;
    private int countsPerMinute;

    public RadiationSample(String dt, int counts) {
        dateTime = dt;
        countsPerMinute = counts;
    }

    public String getDateTime() {
        return dateTime;
    }

    public int getCountsPerMinute() {
        return countsPerMinute;
    }

    public static void main(String[] args) {
        RadiationSample sample = new RadiationSample("4/6/2018 17:15", 17);
        System.out.println("Date and Time : " + sample.getDateTime() +
                "\nCounts Per Minute: " + sample.getCountsPerMinute());
    }
}

文本文件

GQ Electronics LLC, GMC Data Viewer,Version 2.40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Date Time,uSv/h,CPM,#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,#32,#33,#34,#35,#36,#37,#38,#39,#40,#41,#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
FEDERAL-WAY,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:13,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:14,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:15,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:16,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:17,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:18,Every Minute,23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:19,Every Minute,25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:20,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:21,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:22,Every Minute,25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:23,Every Minute,22,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:24,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:25,Every Minute,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:26,Every Minute,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:27,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:28,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:29,Every Minute,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:30,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:31,Every Minute,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:32,Every Minute,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:33,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:34,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:35,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:36,Every Minute,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:37,Every Minute,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:38,Every Minute,23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:39,Every Minute,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:40,Every Minute,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:41,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:42,Every Minute,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
FEDERAL-WAY,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:45,Every Minute,25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:46,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:47,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:48,Every Minute,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:49,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:50,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:51,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:52,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:53,Every Minute,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:54,Every Minute,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:55,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:56,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:57,Every Minute,22,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:58,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 17:59,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:00,Every Minute,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:01,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:02,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:03,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:04,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:05,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:06,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:07,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:08,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:09,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:10,Every Minute,15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:11,Every Minute,22,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:12,Every Minute,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:13,Every Minute,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:14,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:15,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:16,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:17,Every Minute,19,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:18,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:19,Every Minute,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:20,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:21,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:22,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:23,Every Minute,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:24,Every Minute,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:25,Every Minute,18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:26,Every Minute,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:27,Every Minute,14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4/6/2018 18:28,Every Minute,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

标签: javaarraysjava.util.scannercomputer-science

解决方案


问题似乎是您的文本文件存储为一行。因此,第一步必须是读取此文件并将其拆分为单独的行。我做了一些似乎有效的改变。

import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.File;

public class geiger {
    public static final int COUNT_WINDOW = 5;
    public static void main(String[] args) throws Exception {
        try {
            Scanner sc = new Scanner(new File("7_14_2019.txt"));
            ArrayList<RadiationSample> samples = new ArrayList<RadiationSample>();
            String lineSeparator = System.getProperty("line.separator");
            sc.useDelimiter(lineSeparator);
            String dataLineTag = ".*Every Minute.*";
            int maxCounts = 0;
            String[] file = sc.next().split(", ");
            int iter = 0, end = file.length;
            while (iter < end) {
                String line = file[iter];
                if (line.matches(dataLineTag)) {
                    String[] parsed = line.split(",");
                    String dateTime = parsed[0];
                    int counts = Integer.parseInt(parsed[2]);
                    RadiationSample sample = new RadiationSample(dateTime, counts);
                    samples.add(sample);
                    if (counts > maxCounts) maxCounts = counts;
                }
                iter++;
            }
            System.out.println("    Date    Time    Counts Per Minute");
            for (int i = 0; i < samples.size(); i++) {
                if (samples.get(i).getCountsPerMinute() >= maxCounts - COUNT_WINDOW) {
                    System.out.println(samples.get(i).getDateTime()
                            + "             " + samples.get(i).getCountsPerMinute());
                }
            }
            sc.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

程序输出


推荐阅读