簡體   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