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