繁体   English   中英

使用定界符\\ t分割文本文件并存储在Java中的哈希图中

[英]Split a text file using delimiter \t and store in hashmap in java

我有一个n列和n行用制表符分隔的文本文件。如何使用拆分功能将列和行存储到哈希图中。请帮助。
我的文本文件会像..

部门ID名称联系人
第1章678

欧洲经委会2 ttt 789

IT 3 rrr 908

我尝试了以下方法,但是效果不错。

Map<String,String> map=new HashMap<String,String>();
while(lineReader!=null)
{
String[] tokens = lineReader.split("\\t");
key = tokens[0];
values = tokens[1];
map.put(key , values );
System.out.println("ID:"+map.get(key ));
System.out.println("Other Column Values:"+map.get(values ));
}

这将返回文件的最后一个条目(行)的键,其值作为null。 但是我需要在地图上存储所有行和列。 我该怎么做?

如果我正确理解您的数据,

String[] tokens = lineReader.split("\\t");

在第一行进行处理,则数组中将有4个令牌。

如果您想通过以下方式存储地图,我认为您使用的是错误的逻辑:

IT->(1 ZZZ 678)....等,然后您需要对数据进行不同的处理。

您在地图中存储的内容如下:IT-> 1 ECE-> 2 ...,依此类推。

这就是为什么您尝试执行以下操作时会得到null的原因:

map.get(value);

您应该打印的是Keymap.get(key)

实际上,无论如何我都不认为Map是您想要的(但是我不知道您真正想要的是什么)。

现在,为了您对这个问题的理解,请尝试打印:

System.out.println("Total collumns: "+ tokens.length);

更新:

这应该为您工作。 它不是您想要的最优雅的实现,但是可以完成工作。 您应该从现在开始尝试对其进行改进。

Map<String,String> map=new HashMap<String,String>();
while(lineReader!=null)
{
String[] tokens = lineReader.split("\\t");
key = tokens[1];
values = tokens[2]+tokens[3];
map.put(key , values );
System.out.println("ID:"+key);
System.out.println("Other Column Values:"+map.get(key));
}

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM