我需要解析一个层次结构的文本文件,其中前导空格的数量决定了属性的深度,并为每个级别返回一组 java 对象。我考虑过使用扫描仪或单独读取每一行,但这似乎很麻烦。也许正则表达式会是一个更好的解决方案?我需要阅读的文件如下所示:
workarea = workarea:
size = (1583, 805, 0)
areas = areas:
place = array: 2 items
0 = int: 0
1 = int: 0
size = (1583, 805, 0)
areas = array: 2 items
0 = object:
type = myType:
prop1 = prop1
prop2 = array: 2 items
0 = object:
prop1 = prop1
prop2 = prop2
1 = object:
prop1 = prop1
prop2 = prop2
position = (5, 5, 0)
size = (735, 226, 0)
1 = object:
type = myType2:
prop1 = prop1
prop2 = array: 2 items
0 = object:
prop1 = prop1
prop2 = prop2
1 = object:
prop1 = prop1
prop2 = prop2
prop3 = prop3
position = (5, 5, 0)
size = (735, 226, 0)
如您所见,定义了一个“区域”对象,然后用特定类型(myType1 和 myType2)的“对象”填充了 5 行。这些子对象中的每一个都有不同的属性,(在示例中 myType2 具有 prop3。可能包含其他对象的数组)
将这种结构放入一组 Java 对象的最佳方法是什么:例如
Workarea
public String size = "1583,805"
public List<Areas> = (
{Area
public String type = "myType"
Public String prop1 = prop1
etc....
},
{Area
public String type = "myType2"
Public String prop1 = prop1
etc....
}
)