2012-06-01 177 views
0

當在Java中的文本文件處理,有沒有什麼辦法來實現這一目標的結果:深文本文件處理

假設我的文本文件包含以下(用戶號碼,姓,名,用戶名,用戶的數據型)

Num010101 James Jackson JJ123 Normal_User 

現在我有一個包含登錄信息(用戶名,密碼),另一個文件

JJ123 abc 

當到系統的用戶登錄我想使用首先要檢查的文件。 CONTA (用戶名),現在如果在一行中找到用戶名,那麼我想打印由製表符分隔的第一個和最後一個名稱。

我不想在這裏使用映射我想打印時不用的第一,第三和第四值。我通常使用地圖庫或迭代器(例如< First_value,Second_Value>和i-> first,i-> second),但由於我是新來的Java我有點卡住了。

我想跳過印刷的第一,第三和第四值,這就是我要尋找不映射。

+0

沒有意義的聲音居高臨下,是有一個原因你不使用關係數據庫? – Tharwen

+0

我自己解決了這個問題,所以只需使用Replace即可。我一直在尋找處理問題的最快和最簡單的方法,當然拆分和hashmap可能會給我相同的結果,但我發現的是如此簡單和快速。 –

回答

0
+0

如果行包含的用戶名,然後我不知道有多少價值,我可能在文本文件中,但我知道,最後的名稱爲用戶名和姓後面的名字背後的程序只檢查。我看了一些hashmap的例子,但我不認爲我可以用hashmap來做。 (也許我錯了) –

+0

你將需要加載HaspMap中的文本文件(這意味着你需要解析文件)。 HashMap是鍵值對的集合。您可以擁有用戶名作爲密鑰。然後通過簡單地使用*獲得*方法,你可以得到,可你已經儲存在那裏 –

+0

什麼都該用戶名我要尋找的方法來打印文件,而無需在第一,第三和第四值的值(假設我有四個值),這就是我要找的。 –

0

通常你會創建一個類包含關於該人的信息:

public class Person{ 
    String number, first, last, username, type; 
} 

,那麼你會解析該文件創建的Person實例爲文件中的每一行。您可以使用String.split()或番石榴的Splitter

接下來我會將Persons的集合映射到Map<String, Person>,其中關鍵是用戶名。

您可以在Person中實施toString方法,以便返回不管您喜歡的格式化的名字/姓氏。