自从我上次请求一些建议以来,已经有很多实验室通过了,而且我们很快就要接近中期了!我目前正在另一个实验室工作,遇到了一些小困难,一些建议或指导可能会有所帮助!无论如何,这是怎么回事!

我总共必须上3节课:
(StationRecordMain,StationRecord和TemperatureData)

他给了我们预先编写的TemperatureData类,并且无论如何都无法对其进行修改。此类包含大量的String,看起来像这样

“ 14762 20180829 89 70 80 9.6”。这些是我们开始时必须丢弃的一些垃圾数字,年份,月份和日期,高温,低温,平均值和差异。

这个预先编写的类在其中也包含2个方法(hasNextTempRecord,getNextTempRecord)。

我的StationRecord类包含以下实例变量:

private int yearMonthDay = 0;
private int max = 0;
private int min = 0;
private int avg = 0;
private double dif = 0;


最后,我的MainStationRecord类包含Scanner对象:

Scanner scan = new Scanner(tempdata.getNextTempRecord());


,尝试使用扫描程序通读另一类中的预定义字符串。

无论如何,我可以提供更多我编写的代码,但不想将所有内容都充斥于此页面,但这只是基础知识。我相信我正处在需要知道的地方,只需要一些指导。

我需要使用Scanner来扫描另一类上的所有这些String(它们大概有100个,因此我假设某处存在某种循环)
然后,我需要整理每个字符串,并将它们的值存储在这些私有实例变量中。最后将它们解析为int并在主类中将它们打印出来。那是我迷路的地方。我从未使用过这种扫描仪来对不同类中的已定义字符串进行预设,而且我对如何将它们切碎或真正解析没有经验。

因此,如果有人可以引导我朝正确的方向前进,将不胜感激!就像我之前说的,我可以发布其余的代码之前,我已经写过,以使事情变得更容易!

在此之前,感谢您的关注!

最佳答案

我认为,如果我理解它,您可以轻松地执行以下操作:(我没有您的完整代码,因此这只是一个建议)

class StationRecord  {
    private int yearMonthDay = 0;
    private int max = 0;
    private int min = 0;
    private int avg = 0;
    private double dif = 0;

    public StationRecord(int yearMonthDay, int max, int min, int avg, double dif) {
        this.yearMonthDay = yearMonthDay;
        this.max = max;
        this.min = min;
        this.avg = avg;
        this.dif = dif;
    }

    // rest of your code
}

public class Main
{
    public static void main(String[] args) {
        // rest of your codes
        while (tempdata.hasNextTempRecord()) {
            Scanner scan = new Scanner(tempdata.getNextTempRecord());
            scan.next(); // read until a space and I don't save it for throw it away
            new StationRecord(scan.nextInt(), scan.nextInt(), scan.nextInt(), scan.nextInt(), scan.nextDouble());
        }
        // rest of your codes
    }
}


也感谢Andreas的评论。这就是我的理解和编写。

关于java - 使用扫描仪扫描另一个类中预定义的字符串列表,并将其解析为Java中的Ints,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52619807/

10-11 22:30
查看更多