我有一个文本文件,其中包含自1995年以来每场飓风的数据。
每行的格式都相同,例如,一行看起来像这样-1995 Iris 2 965 109.35
我的问题是我希望能够输入指定的范围,然后打印该范围内的所有行。因此,如果我输入2001年作为开始年份,输入2005年作为最后一年,则我想打印2001年至2005年的每一行。
我已将行存储在数组中,因此,如果键入System.out.println(dataArray[143]);
,则可以正常打印。但是我想要一个范围,而不仅仅是一个特定的年份,并且我尝试的所有操作都会返回错误。
任何帮助将不胜感激。
编辑--- 这是一些代码。
if(response.equals("1995")) {
for (int j = 11; j >= 0; j--) {
if (h - j >= 0) {
System.out.println(dataArray[h - j]);
}
}
}
这确实有效(一年)并打印1995年的每一行,但重复了1995年的第一次飓风。我试图在最后一年打印完后结束循环的尝试真是太糟糕了,因为我正在努力整合用户输入。
答案 0 :(得分:0)
我会采取不同的方法,因为我们知道每行中的第一个字符串是发生飓风的年份,而在阅读该行时,我会得到发生飓风的年份。 我将使用的数据结构是Map>,其中键是年份,列表将存储该年份的所有行。 发布给定的年份范围后,使用
提取在该特定年份发生的所有飓风应该很简单。 for(String year: yearList){
List<String> hurricanes = map.get(year);
for (String hurricane: hurricanes){
System.out.println(hurricane);
}
}