在没有字符的情况下如何在字符串中打印下一个字符?

时间:2019-04-10 13:44:26

标签: informatica

我有一个字符串,其中包含用空格分隔的字符。需要以一种特定的格式打印该字符串,即使那里没有一个字符,也会打印下一个相应的字符。

示例:
我有输入字符串,如

输入原始字符串

B D A E C

D B C

A E B

A B C D E

输出字符串

A B C D E

B C D 

A B E

A B C D E

需要informatica的解决方案

1 个答案:

答案 0 :(得分:0)

Informatica并不是处理字符串的最佳工具,因为没有解析器,数组函数和本地循环构造。

在我看来,您的问题可以用一种更简单的方式来解释:每行字符必须按字母顺序排序。

您可以使用Java转换并用Java编写此操作。

如果您使用的是Linux,则可以使用简短的脚本解决此问题:

while read line
do
    echo $line|tr ' ' '\n'|sort|xargs echo
done < yourfile.txt

在此脚本中,while循环读取文件的每一行,并针对每一行使用tr命令将每个字符放在单独的行中,然后对字符进行排序,最后放入同一行中的所有字符按顺序排列在一起。

作为最后的选择,如果行上的字符数具有已知(低)限制,则可以使用Informatica转换执行此操作,因为您将为行的每个字符创建一个字段。您可以使用Normalizer将字符放在单独的记录上,使用Sorter对它们进行排序,使用Expression分配等级值,使用Aggregator从同一行收集字符,并使用Expression来重建行。

我不推荐这种解决方案,因为要实现和维护它会非常复杂。