【发布时间】:2021-03-05 09:49:54
【问题描述】:
我在当前的练习中遇到了一些问题,我必须查看一个由 1000 个字符串组成的数组,这些字符串由“,”分割成 siteId、siteName、年、月、日、小时和温度。我需要的信息是一个整数,即记录的日期,以及一个双精度数,即温度。
例如,
我从气象站获得记录,其中包含值 3031,LOCH GLACARNOCH SAWS (3031),2015,01,01,18,7.50
到目前为止,我已经尝试创建一个 arrayList 等日期,因为不能有重复,但 In 找不到问题的解决方案:英国任何地方的温度下降到 0.0 或以下有多少天?
年份变量并不重要,因为记录仅来自 2015 年。
String[] weatherData = WeatherData.getData();
double zeroTemp = 0.0;
int counter = 0;
// get the data
for (int i = 1; i <= weatherData.length-1; i++) {
String line = weatherData[i];
String[] data = line.split(",");
int date = Integer.parseInt(data[6]);
int month = Integer.parseInt(data[5]);
int year = Integer.parseInt(data[4]);
double temp = Double.parseDouble(data[9]);
LocalDate when = LocalDate.of(year, month, date);
for(int j = 1; j<= data.length; j++) {
HashSet<LocalDate> duplicateDates = new HashSet<>(Arrays.asList(when));
System.out.println(when);
duplicateDates.add(when);
System.out.println(duplicateDates.size());
}
if(zeroTemp >= temp) {
counter++;
}
}
System.out.println("The temperature fell to 0.0 degrees or below in " + counter + " days.");
}
【问题讨论】:
-
我编辑了帖子,现在第一行有一张图片。
-
将代码包含为文本而不是图像
-
现已编辑。你能帮我创建一个 hashSet 吗?
-
只有当那天的温度为零或低于零时,您才应该将日期添加到集合中。
-
创建一个对数据建模的
Class。然后做List<ClassName> model = new ArrayList();。然后循环遍历数据并执行for(...){model.add(new ClassName(address, year, date, ...);之类的操作,然后您可以使用Stream或循环查找所需的数据。
标签: java arrays string split duplicates