有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将文本文件的树状结构内容转换为关系平面数据集

给定一个包含以下内容的文本文件:

A.  PRODUCT TYPE [A0001]
    MUTUAL FUNDS [A0002]
        OPEN FUNDED
        CLOSED FUNDS [A1313]
            MONEY FUNDS [A1317]
                INDEX TRACKING [A1318]
                EQUITY TRACKING[A1319]
                SECTOR TRACKING [A1320]
            REGION-SPECIFIC FUNDS [A1325]
            COUNTRY-SPECIFIC FUNDS [A1314]
                AUSTRIA [A1315]
                AUSTRALIA [A1323]
                XXXXX
                XXXXX]
            CXXXXXX [A1321]
            XXXXXXXX [A1324]
        XXXXXXXXX [A1306]
            XXXXX [A1308]
            XXXXX [A1307]
        XXXXXXX [A1309]
            XXXXXX [A1311]
            XXXXXX [A1310]
            XXXXXXX [A1312]
        XXXXXXXXXXX [A1299]
            XXXXXXXX [A1300]
            XXXXXXX [A1301]
        XXXXXXXXXX [A1329]
        XXXXXXXXXX [A1326]
            XXXXXXX [A1327]
            XXXXXXXXXX [A1328]
        XXXXXXXXXXXXX [A1302]
            XXXXXXXXXXX [A1303]
            XXXXXXXXXX [A1304]
    XXXXXXX [A0323]
        XXXXXXXXXX [A0351]
            XXXXXXX [A0362]
            XXXXXXX [A0363]
            XXXXXXXX [A0364]
            XXXXXXX [A0365]

建议使用什么方法将每行文本转换为以下内容:

PRODUCT TYPE [A0001] > MUTUAL FUNDS [A0002] > CLOSED FUNDS [A1313] > MONEY FUNDS [A1317] >  INDEX TRACKING [A1318]
PRODUCT TYPE [A0001] > MUTUAL FUNDS [A0002] > CLOSED FUNDS [A1313] > MONEY FUNDS [A1317] >  EQUITY TRACKING[A1319]
PRODUCT TYPE [A0001] > MUTUAL FUNDS [A0002] > CLOSED FUNDS [A1313] > MONEY FUNDS [A1317] >  SECTOR TRACKING [A1320]

共 (1) 个答案

  1. # 1 楼答案

    • 创建一个POJO来表示文件中的每个实体。所以创建一个类ProductType,一个类Fund,也许还有一个类Tracking(我不知道你的域,所以我不知道实体或它们的意思)

    • 然后构建一个解析器,将文本文件解析到POJO中。您可以通过单元测试(一些字符串输入,一些对象结构输出)轻松验证这一点。在本例中,您可以逐行解析文件,并通过确定行开头的制表符/空格来选择文件

    • 当你有了对象结构,你就可以遍历它并生成你想要的东西。例如,您可以使用访客模式来封装最终文本的生成