读取txt文件到hashmap,用“\ t”分割

我有一个这种形式的txt文件:

 1     01/01/2018 01:00 1915    8,4
 1     01/01/2018 02:00 2111    8,8

在阅读文件后,我想将其存储到具有以下结构的Map中:

     <"Key1",1> <"Key2",01/01/2018 01:00>  <"Key3",1915>  <"Key4",8,4>

这是导入代码

        BufferedReader buf = new BufferedReader(new 
 FileReader("test.txt"));
        ArrayList<String> words = new ArrayList<>();
        String lineJustFetched = null;
        String[] wordsArray;
        Map<String,String> map = new HashMap<>();

        while(true){
            lineJustFetched = buf.readLine();
            if(lineJustFetched == null) {
                break;
            } else {
                wordsArray = lineJustFetched.split("\t");
                for(String each : wordsArray){
                        words.add(each);
                  //  System.out.println(words.toString());
                    map.put("Key1",each);
                    System.out.println(map.toString());

                }
            }
        }
        buf.close();

我不知道该把什么放到地图中以获得这种结构的问题

   <"Key1",1> <"Key2",01/01/2018 01:00>...


守着一只汪
浏览 803回答 4
4回答

白衣染霜花

使用for与索引for(int&nbsp;i&nbsp;=&nbsp;0&nbsp;;&nbsp;i&nbsp;<&nbsp;wordsArray.length&nbsp;;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;map.put("Key"+(i+1),&nbsp;wordsArray[i]);}编辑在注释之后,您可以设置一个包含字段名称的数组并使用它String[]&nbsp;fieldNames&nbsp;=&nbsp;{"id",&nbsp;"date",&nbsp;"whatever"};for(int&nbsp;i&nbsp;=&nbsp;0&nbsp;;&nbsp;i&nbsp;<&nbsp;wordsArray.length&nbsp;;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;map.put(fieldNames[i],&nbsp;wordsArray[i]);}

翻阅古今

split像这样将结果放入地图中,分配键:wordsArray = lineJustFetched.split("\t");map.put("Key1", wordsArray[0]);map.put("Key2", wordsArray[1]);map.put("Key3", wordsArray[2]);map.put("Key4", wordsArray[3]);

慕妹3242003

好吧,首先你的错误是你已经硬编码Key1为你的Hashmap的关键,你应该改变它。但是你为什么不使用OOP方式呢?在您正在阅读的行中创建数据的对象并将其添加到列表或其他内容中,这样您也可以为“Keys”创建有意义的名称,而不仅仅是“Key1”,“Key2”,......
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java