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 楼答案
创建一个POJO来表示文件中的每个实体。所以创建一个类
ProductType
,一个类Fund
,也许还有一个类Tracking
(我不知道你的域,所以我不知道实体或它们的意思)然后构建一个解析器,将文本文件解析到POJO中。您可以通过单元测试(一些字符串输入,一些对象结构输出)轻松验证这一点。在本例中,您可以逐行解析文件,并通过确定行开头的制表符/空格来选择文件
当你有了对象结构,你就可以遍历它并生成你想要的东西。例如,您可以使用访客模式来封装最终文本的生成