[英]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);
您應該打印的是Key和map.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.