Java:从文本文件打印一系列行

时间:2018-10-25 03:46:04

标签: java arraylist

我有一个文本文件,其中包含自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年的第一次飓风。我试图在最后一年打印完后结束循环的尝试真是太糟糕了,因为我正在努力整合用户输入。

1 个答案:

答案 0 :(得分:0)

我会采取不同的方法,因为我们知道每行中的第一个字符串是发生飓风的年份,而在阅读该行时,我会得到发生飓风的年份。 我将使用的数据结构是Map>,其中键是年份,列表将存储该年份的所有行。 发布给定的年份范围后,使用

提取在该特定年份发生的所有飓风应该很简单。
 for(String year: yearList){
   List<String> hurricanes = map.get(year);
   for (String hurricane: hurricanes){
        System.out.println(hurricane);
   }
  }