Talend - 将字符串拆分为 n 行

Talend - split a string to n rows

我想在 Talend 中将一列中的字符串拆分为 n 行。

例如:

column
2aabbccdd

第一个数字是我用来定义行长度的“n”,所以预期结果应该是:

第 1 行 = aa

第 2 行 = bb

第 3 行 = 抄送

第 4 行 = dd

这里的想法是迭代字符串并每 2 个字符切割一次。

有什么想法吗?

我会使用 tJavaFlex 来拆分字符串,并使用一个技巧从中分离出 n 行。

tJavaFlex的主要代码:

int n = Integer.parseInt(row1.str.substring(0, 4)); //get n from the first 4 characters
String str2 = row1.str.substring(4); //get the string after n

int nbParts = (str2.length() + 1) / n;

System.out.println("number of parts = " + nbParts);

for (int i = 0; i < nbParts; i++)
{
    String part = str2.substring(i * n);
    if(part.length() > n)
    {
        part = part.substring(0, n);
    }

    row2.str = part;

而tJavaFlex的结束代码只是一个右括号:

}

诀窍是在主代码中使用for循环,但只在结束代码中关闭它。
tFixedFlowInput 仅包含一列保存输入字符串。