为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着一只汪 2019-04-26 18:19:59
我有一个这种形式的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>...
查看完整描述

4 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

使用for与索引

for(int i = 0 ; i < wordsArray.length ; i++) {
    map.put("Key"+(i+1), wordsArray[i]);}

编辑

在注释之后,您可以设置一个包含字段名称的数组并使用它

String[] fieldNames = {"id", "date", "whatever"};for(int i = 0 ; i < wordsArray.length ; i++) {
    map.put(fieldNames[i], wordsArray[i]);}


查看完整回答
反对 回复 2019-05-15
?
翻阅古今

TA贡献1780条经验 获得超5个赞

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]);


查看完整回答
反对 回复 2019-05-15
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

好吧,首先你的错误是你已经硬编码Key1为你的Hashmap的关键,你应该改变它。

但是你为什么不使用OOP方式呢?在您正在阅读的行中创建数据的对象并将其添加到列表或其他内容中,这样您也可以为“Keys”创建有意义的名称,而不仅仅是“Key1”,“Key2”,......


查看完整回答
反对 回复 2019-05-15
  • 4 回答
  • 0 关注
  • 787 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号