kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理
常用字符串处理
上一期整理了ABAP的数据类型和定义,今天我们整理一下开发过程中常见的字符串处理命令。虽然说这些基础知识对于已经熟练使用Ctrl c + Ctrl v的资深码农来说过于简单。但是对于一些刚刚进入行业的新人来说,能够随时打开文章翻一翻也许还有有些帮助的。再者,俗话说的好,好记性不如烂笔头,哪天突然就是想不起来了不就刚好派上用场了~
1,字符串的截取
有时候我们需要获取某个字段值的某几位数值,通常可以直接指定字符串开始位置和长度。比如,想要截取下面'I LIKE SAP ABAP'中的sap三个字符串:
DATA:GDF_FIELD1 TYPE C LENGTH 15, GDF_FIELD2 TYPE C LENGTH 15. GDF_FIELD1 = 'I LIKE SAP ABAP'. WRITE GDF_FIELD1. GDF_FIELD2 = GDF_FIELD1+7(3).WRITE: / GDF_FIELD2.输出结果:
字符串的截取默认字符是从0开始计算,所以第八位开始截3位写做+7(3)。
2,获取字符串的长度
abap中可以通过函数strlen来获取字符串的长度,如下:
DATA: GDF_FIELD1 TYPE C LENGTH 15, GDF_LENGTH TYPE C LENGTH 3. GDF_FIELD1 = 'I LIKE SAP ABAP'. GDF_LENGTH = STRLEN( GDF_FIELD1 ). WRITE GDF_LENGTH.输出结果:
3,字符串大小写转换
通过函数translate可以对字符串进行大小写转换,如下:
DATA: GDF_FIELD1 TYPE C LENGTH 15, GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'I LIKE SAP ABAP'.WRITE GDF_FIELD1.TRANSLATE GDF_FIELD1 TO LOWER CASE.WRITE / GDF_FIELD1.输出结果:
再转换回大写:
DATA: GDF_FIELD1 TYPE C LENGTH 15, GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'i like sap abap'.WRITE GDF_FIELD1.TRANSLATE GDF_FIELD1 TO UPPER CASE.WRITE / GDF_FIELD1.输出结果:
4,字符串的替换
有时候我们需要将某个字符串值的某个字符替换成制定的字符,可以通过replace来进行处理。如下:
DATA: GDF_FIELD1 TYPE C LENGTH 15, GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'i like sap abap'.REPLACE 'sap' WITH 'spa' INTO GDF_FIELD1.WRITE GDF_FIELD1.输出结果:
5,去处字符串空格
A,使用CONDENSE去除空格
例一:
DATA: GDF_FIELD1 TYPE C LENGTH 15, GDF_FIELD2 TYPE P LENGTH 4 DECIMALS 2.GDF_FIELD2 = '12345.22'.GDF_FIELD1 = GDF_FIELD2.WRITE / GDF_FIELD1.CONDENSE GDF_FIELD1.WRITE / GDF_FIELD1.例二:
DATA: GDF_FIELD1 TYPE C LENGTH 30, GDF_FIELD2 TYPE STRING.GDF_FIELD1 = ' i like sap abap '.GDF_FIELD2 = ' i like sap abap '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.CONDENSE GDF_FIELD1 NO-GAPS.CONDENSE GDF_FIELD2 NO-GAPS.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.备注:
a,如果是C类型只去掉前面的空格,因为是定长,就算后面空格去掉了左对齐时后面会补上空格。
b,如果是String类型,则后面空格也会被去掉
c,NO-GAPS:字符串中间的所有空格都也都会去除(String类型也是这样)
d,空格去掉后会左对齐
B,使用SHIFT去除空格
例一:
DATA: GDF_FIELD1 TYPE C LENGTH 30, GDF_FIELD2 TYPE STRING.GDF_FIELD1 = ' i like sap abap1 '.GDF_FIELD2 = ' i like sap abap2 '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2. SHIFT GDF_FIELD1 LEFT DELETING LEADING SPACE. SHIFT GDF_FIELD2 LEFT DELETING LEADING SPACE.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.输出结果:
例二
DATA: GDF_FIELD1 TYPE C LENGTH 30, GDF_FIELD2 TYPE STRING.GDF_FIELD1 = ' i like sap abap1 '.GDF_FIELD2 = ' i like sap abap2 '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2. SHIFT GDF_FIELD1 RIGHT DELETING TRAILING SPACE. SHIFT GDF_FIELD2 RIGHT DELETING TRAILING SPACE.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.输出结果:
6,字符串的拆分
使用函数SPLIT对字符串进行拆分
例一,拆分到变量中:
DATA: GDF_FIELD1 TYPE C LENGTH 10, GDF_FIELD2 TYPE C LENGTH 3, GDF_FIELD3 TYPE C LENGTH 6.GDF_FIELD1 = '400-123456'.SPLIT GDF_FIELD1 AT '-' INTO GDF_FIELD2 GDF_FIELD3.WRITE: / GDF_FIELD1, / GDF_FIELD2, / GDF_FIELD3.输出结果:
例一,拆分到内表中:
处理一些文件数据比较常用
DATA: GDF_FIELD1 TYPE C LENGTH 10, GDT_FIELD TYPE STANDARD TABLE OF STRING.GDF_FIELD1 = '400-123456'.SPLIT GDF_FIELD1 AT '-' INTO TABLE GDT_FIELD.BREAK-POINT.内表数据:
7,字符串的合并
CONCATENATE函数可以对多个字符串合并
DATA: GDF_FIELD1 TYPE C LENGTH 5, GDF_FIELD2 TYPE C LENGTH 3, GDF_FIELD3 TYPE C LENGTH 10. GDF_FIELD1 = '12345'. GDF_FIELD2 = 'ABC'. CONCATENATE GDF_FIELD1 GDF_FIELD2 INTO GDF_FIELD3. WRITE GDF_FIELD3.* 空格区分开 CONCATENATE GDF_FIELD1 GDF_FIELD2 INTO GDF_FIELD3 SEPARATED BY SPACE. WRITE / GDF_FIELD3.输出结果:
输出结果:
8,查找字符串的位置
DATA: PATT TYPE STRING VALUE `now`, TEXT TYPE STRING, RESULT_TAB TYPE MATCH_RESULT_TAB, LDT_COUNT TYPE I.FIELD-SYMBOLS LIKE LINE OF RESULT_TAB.FIND ALL OCCURRENCES OF PATT IN `Everybody knows this is nowhere` MATCH COUNT LDT_COUNT RESULTS RESULT_TAB.*找到的次数WRITE LDT_COUNT.LOOP AT RESULT_TAB ASSIGNING . WRITE: / -OFFSET, "位置 -LENGTH. "长度ENDLOOP.输出结果:
下期讲解:选择画面定义
以上、宜しくお願い致します。
日语遇上搬砖
“ 每天一起进步一点点”
总结
以上是生活随笔为你收集整理的kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: r语言的runmed函数_R实战 第五篇
- 下一篇: list筛选数据_Power Query