我正在从文本文件(“ text.txt”)中读取行,然后将它们存储到树形图中,直到出现apply一词。

但是,执行此操作后,我在树状图中没有最后一行“ 4 apply”

text.txt
1添加
3倍
4申请
6添加

Scanner input = new Scanner(file);
while(input.hasNextLine()){

    String line = input.nextLine();
    String[] divline = line.split(" ");

    TreeMap<Integer, String> Values = new TreeMap();

    if(!divline[1].equals("apply"))
    {
        Values.put(Integer.valueOf(divline[0]), divline[1]);
    }
    else
    {
        Values.put(Integer.valueOf(divline[0]), divline[1]);
        break;
    }

    System.out.println(Values);

}

最佳答案

您每次都在while循环内创建新地图。将以下代码放在while循环之前。

TreeMap<Integer, String> valores = new TreeMap();


同样,地图内容的打印也需要纠正。所以你的最终代码可以是

Scanner input = new Scanner(file);
TreeMap<Integer, String> valores = new TreeMap();
     while(input.hasNextLine()){

        String line = input.nextLine();
        String[] divline = line.split(" ");

        if(!divline[1].equals("apply")){
            valores.put(Integer.valueOf(divline[0]), divline[1]);
        } else {
            valores.put(Integer.valueOf(divline[0]), divline[1]);
            break;
        }

    }

for (Entry<Integer,String> entry: valores){
   System.out.println(entry.getKey() + "- "+entry.getValue());
}

10-07 22:04