如何在Pentaho Data Integration中删除字符串最后两个字符
在Pentaho Data Integration V9.2中删除字符串最后两个字符的解决方案
下面是几种无需额外插件的实现方式,均为Kettle内置步骤:
方法1:使用计算器步骤(Calculator Step)
- 添加计算器步骤到转换中
- 在步骤配置界面点击「新建」,创建一个新的输出字段
- 字段类型选择「String」
- 在「计算器函数」中选择
LEFT,参数设置为:- 第一个参数:选中需要处理的目标字段
- 第二个参数:输入表达式
LEN(目标字段名)-2(例如LEN(my_text)-2)
- 运行转换后,新生成的字段即为去掉最后两个字符的结果
方法2:使用字符串操作步骤(String Operations Step)
- 添加字符串操作步骤
- 在「字段」选项卡中选择要处理的字段
- 操作类型选择「Substring(截取字符串)」
- 配置参数:
- 起始索引(Start index):填写
0 - 结束索引(End index):输入
[目标字段名].length() - 2(例如[my_text].length() - 2)
- 起始索引(Start index):填写
- 确认配置后运行转换,即可得到处理后的字符串
方法3:使用用户定义Java表达式步骤(User Defined Java Expression Step)
- 添加用户定义Java表达式步骤
- 新建输出字段,类型选择「String」
- 在表达式输入框中写入Java代码:
目标字段名.substring(0, 目标字段名.length()-2)(例如my_text.substring(0, my_text.length()-2)) - 该方式适合熟悉Java语法的用户,逻辑更直观
注意事项:如果目标字段的长度小于2,上述方法会抛出异常。建议提前添加过滤记录步骤筛选符合长度要求的记录,或者在表达式中增加判断逻辑(例如
IF(LEN(my_text)>=2, LEFT(my_text, LEN(my_text)-2), my_text),用于保留短字符串原样)
内容的提问来源于stack exchange,提问作者Mauricio Goette
相关产品推荐
相关产品推荐

