java - 读取每个字段带有前导空格的分层文本文件

标签 java text space hierarchical

我需要解析一个分层的文本文件,其中前导空格的数量决定属性的深度,并返回每个级别的 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....
         }
)

最佳答案

我最终使用几个方法 getValue 和 getValues 构建了一个解析器类(它返回与传入的正则表达式和文件内容匹配的值数组)。我使用的正则表达式是

    (?<=STRING_BEFORE_VAULE)(.*)(?=STRING_AFTER_VALUE_UTIL_EOF\\s*)

对于我想要的文件的每个部分,我只是调用了解析器类。

感谢您的帮助。

关于java - 读取每个字段带有前导空格的分层文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105584/

相关文章:

java - 使用批处理语句插入 Cassandra

css - 删除 span 和文本元素之间的空格

android - 为空间小部件着色

mysql - php 生成的文本和键盘编写的文本看起来相同,但 diff(和 MySQL 查询)有 100% 不同

Java JDK 空间不足

c++ - 如何在此输出中每四个字符之间放置一个空格?

java - kotlin 中的 supportFragmentManager.commit 不起作用

java - 上传文件时所需的 MultipartFile 参数 'file' 不存在

java - 如何使用 Struts2 中 Action 类的数组填充 SelectBox?

r - 使用 ggplot2 在分面躲避条形图上添加文本