2013-11-09 62 views
0

我必須讀取文件並存儲值,然後再進行查找。解析並查找可變字段數的字符串java

對於例如,該文件將如下所示:

Gryffindor = 5 
Gryffindor.Name.Harry = 10 
Gryffindor.Name.Harry.Cloak.Black = 15 
and so on... 

我需要存儲這些(我在想的地圖)。之後,我需要處理每個角色並查找這張地圖來指定他們的點數。假設我遇到哈利,我知道他來自格蘭芬多,身穿藍色斗篷。我將不得不查找這張地圖(或任何我使用的物體)

Gryffindor.Name.Harry.Cloak.Blue 

這應該沒有任何回報。然後我需要回退到剛纔的名字和查找

Gryffindor.Name.Harry 

應該返回我10

同樣,如果我查找了羅恩(假設他穿着黑色),

Gryffindor.Name.Ron.Cloak.Black 

應該返回任何結果,回落到

Gryffindor.Name.Ron 

,沒有什麼,回落到

Gryffindor 

應返回5.

什麼將是存儲和讀取這些數據優雅的方式?我正在考慮使用地圖來存儲鍵值對,然後使用開關盒來讀取它們。你會怎麼做?

+0

之前有人提到過'Properties',它基本上將映射序列化並反序列化到人類可讀文件的映射。如果這不是一個練習,請看看它是如何工作的。 – Sam

+0

使用地圖時遇到了什麼問題?或者你甚至嘗試過什麼? –

+0

我還沒有嘗試過任何東西。在開始實施之前,我正在尋找想法。 – user2975010

回答

0

Java的內置Properties類實現Map,並且可以讀取和寫入您描述的數據格式(請參閱該類的load()store()方法)。

這裏沒有什麼可以實現你的「回退到更高級別的密鑰」功能,所以你需要編寫一個方法,在Properties實例中查找所需密鑰下的數據,並持續嘗試縮短如果沒有找到相同的密鑰版本。