Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析和查找具有可变字段数的字符串_Java_String_Parsing - Fatal编程技术网

Java 解析和查找具有可变字段数的字符串

Java 解析和查找具有可变字段数的字符串,java,string,parsing,Java,String,Parsing,我必须读取一个文件并存储这些值,然后再进行查找 例如,文件将如下所示: Gryffindor = 5 Gryffindor.Name.Harry = 10 Gryffindor.Name.Harry.Cloak.Black = 15 and so on... 我需要储存这些(我在想一张地图)。稍后,我需要处理每个字符并查找此地图以为它们指定点。假设我遇到哈利,我知道他来自格兰芬多,穿着一件蓝色斗篷。我将不得不查找这个地图(或我使用的任何对象)作为 这应该不会给我任何回报。然后我只需要返回到名称

我必须读取一个文件并存储这些值,然后再进行查找

例如,文件将如下所示:

Gryffindor = 5
Gryffindor.Name.Harry = 10
Gryffindor.Name.Harry.Cloak.Black = 15
and so on...
我需要储存这些(我在想一张地图)。稍后,我需要处理每个字符并查找此地图以为它们指定点。假设我遇到哈利,我知道他来自格兰芬多,穿着一件蓝色斗篷。我将不得不查找这个地图(或我使用的任何对象)作为

这应该不会给我任何回报。然后我只需要返回到名称和查找

Gryffindor.Name.Harry
那应该给我10分

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

应该什么都不回,退一步

Gryffindor.Name.Ron
Gryffindor
又没什么,退一步

Gryffindor.Name.Ron
Gryffindor
它应该返回5

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

Java有一个内置类,它实现了
Map
,可以读写你描述的数据格式(请参见该类的名称和方法)


这里没有实现“返回到更高级别的键”功能的方法,因此您需要编写一个方法,在
Properties
实例中查找所需键下的数据,如果没有找到,则继续尝试相同键的较短版本。

前面提到的
Properties
,它基本上是序列化和反序列化一个映射到一个人类可读的文件。如果这不是一个练习,看看它是如何工作的。使用地图有什么问题?或者你试过什么了吗?我什么都没试过。在开始实施之前,我一直在寻找想法。