解析复杂的CSV文件

时间:2014-04-23 05:38:19

标签: java parsing

我现在处于困境,我需要使解析器解析tekla中的格式化文档,以便在数据库中处理。

所以在.CSV上我有这个

,SMS-PW-BM31,,1,,,,287.9
,,SMS-PW-BM31,1,H350*175*7*11,SS400,5805,287.9
,------------,--------------,----,---------------,--------,------------,---------
,SMS-PW-BM32,,1,,,,405.8
,,SMSPW-H707,1,H350*175*7*11,SS400,6697,332.2
,,SMSPW-EN12,1,PLT12x175,SS400,500,8.2
,,SMSPW-EN14,1,PLT16x175,SS400,500,11
,------------,--------------,----,---------------,--------,------------,---------

这是从tekla软件生成的文档。我对输出的期望是这样的

HEAD-MARK      COMPONENT-TYPE  QUANTITY  PROFILE        GRADE     LENGTH     WEIGHT 
SMS-PW-BM31                    1                                             287.9
SMS-PW-BM31    SMS-PW-BM31     1         H350*175*7*11  SS400     5805       287.9
SMS-PW-BM32                    1                                             405.8
SMS-PW-BM32    SMSPW-H707      1         H350*175*7*11  SS400     6697       332.2
SMS-PW-BM32    SMSPW-EN12      1         PLT12X175      SS400     500        8.2
SMS-PW-BM32    SMSPW-EN14      1         PLT16X175      SS400     500        11

我如何从Java开始?最复杂的是分配由' - '

分隔的头部标记

1 个答案:

答案 0 :(得分:-1)

CSV format非常简单,有一个逗号(,)的列分隔符和一个新行(\n)的行分隔符。有些列将被引号(")包围以包含列数据,但看起来您不必担心给定当前文件。

看看String.split,经过一番思考后你会找到答案。