解析并查找具有可变数量的字段java的字符串

时间:2013-11-09 22:29:06

标签: java string parsing

我必须读取文件并存储值,然后再进行查找。

例如,该文件将如下所示:

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

我需要存储这些(我正在考虑一张地图)。稍后,我需要处理每个字符并查找此映射以为它们分配点。假设我遇到哈利,我知道他来自格兰芬多,而且他穿着蓝色斗篷。我将不得不将此地图(或我使用的任何对象)查找为

Gryffindor.Name.Harry.Cloak.Blue

哪个应该没有回报我。然后我需要回到名称和查找

Gryffindor.Name.Harry

应该给我一个10。

同样,如果我查找Ron,(假设他穿着黑色),

Gryffindor.Name.Ron.Cloak.Black

应该什么都不返回,回到

Gryffindor.Name.Ron

再没有,回到

Gryffindor

应返回5.

存储和读取此数据的优雅方式是什么?我正在考虑使用地图存储键值对,然后使用开关盒来读取它们。你会怎么做?

1 个答案:

答案 0 :(得分:0)

Java有一个实现Map的内置Properties类,可以读写您描述的数据格式(请参阅该类的load()store()方法)。

没有任何内容可以实现“回退到更高级别的密钥”功能,因此您需要编写一个方法,在Properties实例中查找所需密钥下的数据,并保留如果找不到任何内容,则连续尝试相同密钥的较短版本。