java将一个方法数组的一部分实现为一个新方法
我有一个项目,我必须根据给定的月份、年份或日期查找数据。如果为空,则返回该年/日/月的所有数据。我得到了第一种读取文件并将数据放入数组的方法;每一行都是特定时间的数据,格式为
#站点_代码年月日时分秒值_unc值经纬度海拔高度入口_高度仪表qcflag
数据字符串示例如下:
BRW 1973 1 1 0 0 0 -999.99 -99.99 0 71.323 -156.611 27.0 11.0 16.0 NA *..
BRW 1973 1 2 0 0 0 -999.99 -99.99 0 71.323 -156.611 27.0 11.0 16.0 NA *..
问题是,我不知道如何获取第一个方法数组的部分,以便收集所调用的年/日/月的所有数据
这是我的代码:
public ArrayList<CO2Data> loadData(String filename) throws FileNotFoundException {
ArrayList array = new ArrayList();
String input = "";
try {
Scanner scan = new Scanner(new File("input.txt"));
while ((input = scan.next()) != null){
input = scan.next();
if (input == "BRW"){
array.add(scan.nextLine());
}
}
scan.close();
}
catch (FileNotFoundException exception)
{
System.out.println("could not find file");
}
return array;
}
@Override
public ArrayList<CO2Data> getData(Integer year, Integer month, Integer day) {
ArrayList array = null;
for(int i = 0; != null; i++){
if (year == nextLoadData || year == null){
if (month == nextLoadData || month == null){
if (day == nextLoadData || day == null){
array.add();
}}
}
return array;
}
# 1 楼答案
我将添加完整的解决方案,以便您可以研究和更改它
首先,我们有CO2Data类来保存一行数据。也许你可以查一下Lesson: Object-Oriented Programming Concepts
二氧化碳数据:
实现了方法的MainClass:
输入。txt:
输出:
我还在代码中添加了一些注释。 如果你对代码有任何疑问,请不要犹豫,我会相应地编辑我的答案。 祝你好运
# 2 楼答案
我想你需要在这里做一些重新设计,让事情变得更简单。我会提出一些建议,如果你在理解上有困难,你可以在评论中告诉我
您已经有了一个
CO2Data
类,它大概存储了文件中一行的信息。理想情况下,它应该有一个方法,可以接受一个输入字符串并转换为这些对象之一。让我们假设它看起来像:为了清晰起见,我将其简化为站点代码和年份,但您可以非常简单地扩展到其他领域
从文件读取的方法应返回以下对象的列表:
然后,按年份和月份筛选的方法可以获取以下对象的列表:
请注意,我在这里使用了Java8特性