我有一个类似这样的查询数据集:
+---------+---------+---------+-------------+
| ColumnA | ColumnB | ColumnC | ColumnD |
+---------+---------+---------+-------------+
| A1 | B1 | C1 | D11,D21,D31 |
+---------+---------+---------+-------------+
| A2 | B2 | C2 | D21,D22 |
+---------+---------+---------+-------------+
我想像下面这样分割它:
+=========+=========+=========+=========+
| ColumnA | ColumnB | ColumnC | ColumnD |
+=========+=========+=========+=========+
| A1 | B1 | C1 | D11 |
+---------+---------+---------+---------+
| A1 | B1 | C1 | D21 |
+---------+---------+---------+---------+
| A1 | B1 | C1 | D31 |
+---------+---------+---------+---------+
| A2 | B2 | C2 | D21 |
+---------+---------+---------+---------+
| A2 | B2 | C2 | D22 |
+---------+---------+---------+---------+
D列中此类字段的数量未知(从0到无穷大)。 大约有15列,例如D列。
我试图这样做(对于第一行)
$F{OV9}.split(";")[0]
和(第二个)
$F{OV9}.split(";").length > 1 && $F{OV9}.split(";")[1].length() >2 ? $F{OV9}.split(";")[1].trim() : "-"
但仅在最多有两个子字符串的情况下才适用。
我该怎么办?