ABAP字符串常用方法

1.FIND

查找指定字符串,返回下标,下标从0开始。

DATA TEXT TYPE STRING VALUE ` Here are some about ABAP `.
OUT->WRITE( TEXT ).

data(result1) = find( VAL = TEXT SUB = 'A' ).
OUT->WRITE( |RESULT1: { RESULT1 }| ).

DATA(RESULT2) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE ).
OUT->WRITE( |RESULT2: { RESULT2 }| ).

DATA(RESULT3) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE OCC = -1 ).
OUT->WRITE( |RESULT3: { RESULT3 }| ).

DATA(RESULT4) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE OCC = -2 ).
OUT->WRITE( |RESULT4: { RESULT4 }| ).

DATA(RESULT5) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE OCC = 2 ).
OUT->WRITE( |RESULT5: { RESULT5 }| ).

DATA(RESULT6) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE OCC = 2 OFF = 10 ).
OUT->WRITE( |RESULT6: { RESULT6 }| ).

DATA(RESULT7) = FIND( VAL = TEXT SUB = 'A' CASE = ABAP_FALSE OCC = 2 OFF = 10 LEN = 4 ).
OUT->WRITE( |RESULT7: { RESULT7 }| ).

在这里插入图片描述

  • RESULT1:获取sub在text中首次出现的位置,区分大小写。
  • RESULT2:不区分大小写。
  • RESULT3:反向查找,不区分大小写,查找最后一个sub。
  • RESULT4:反向查找,不区分大小写,查找倒数第二个sub。
  • RESULT5:正向查找,不区分大小写,查找第二个sub。
  • RESULT6:从下标10开始查找,不区分大小写,查找第二个sub。
  • RESULT7:从下标10开始查找,不区分大小写,查找第二个sub,查找长度为4。

2.COUNT

DATA TEXT TYPE STRING VALUE `  ABAP  `.
DATA SUBSTRING TYPE STRING VALUE `BP`.

DATA(RESULT1) = STRLEN( TEXT ).
OUT->WRITE( |RESULT1: { RESULT1 }| ).

DATA(RESULT2) = NUMOFCHAR( TEXT ).
OUT->WRITE( |RESULT2: { RESULT2 }| ).

DATA(RESULT3) = COUNT( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT3: { RESULT3 }| ).

DATA(RESULT4) = FIND( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT4: { RESULT4 }| ).

DATA(RESULT5) = COUNT_ANY_OF( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT5: { RESULT5 }| ).

DATA(RESULT6) = FIND_ANY_OF( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT6: { RESULT6 }| ).

DATA(RESULT7) = COUNT_ANY_NOT_OF( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT7: { RESULT7 }| ).

DATA(RESULT8) = FIND_ANY_NOT_OF( VAL = TEXT SUB = SUBSTRING OFF = 1 ).
OUT->WRITE( |RESULT8: { RESULT8 }| ).

在这里插入图片描述

  • RESULT1:获取字符串长度,包含全部空格。
  • RESULT2:获取字符串长度,忽略尾空格。
  • RESULT3:获取substring在text中出现的次数。
  • RESULT4:获取substring在text中首次出现的位置。
  • RESULT5:将sub作为列表,列表中的每个元素如果在text中匹配,则+1,返回总和。
  • RESULT6:将sub作为列表,返回列表中匹配到的第一个位置。
  • RESULT7:与5相反,总长度为8,忽略首位和B、P,返回其他总数。
  • RESULT8:返回第一个不匹配的位置,忽略首位,返回1。

3.Processing

DATA TEXT TYPE STRING VALUE `SAP BTP, ABAP DEVELOPMENT LEARNING`.
    
OUT->WRITE( |TEXT: { TEXT }| ).
OUT->WRITE( |TO UPPER: { TO_UPPER( TEXT ) }| ).
OUT->WRITE( |TO LOWER: { TO_LOWER( TEXT ) }| ).
OUT->WRITE( |TO MIXED: { TO_MIXED( TEXT ) }| ).
OUT->WRITE( |FROM_MIXED: { FROM_MIXED( TEXT ) }| ).
OUT->WRITE( | | ).

OUT->WRITE( |REVERSE: { REVERSE( TEXT ) }| ).
OUT->WRITE( |SHIFT_LEFT: { SHIFT_LEFT( VAL = TEXT PLACES = 3 ) }| ).
OUT->WRITE( |SHIFT_RIGHT: { SHIFT_RIGHT( VAL = TEXT PLACES = 3 ) }| ).
OUT->WRITE( |SHIFT_LEFT: { SHIFT_LEFT( VAL = TEXT CIRCULAR = 3 ) }| ).
OUT->WRITE( |SHIFT_RIGHT: { SHIFT_RIGHT( VAL = TEXT CIRCULAR = 3 ) }| ).
OUT->WRITE( | | ).

OUT->WRITE( |SUBSTRING: { SUBSTRING( VAL = TEXT OFF = 4 LEN = 10 ) }| ).
OUT->WRITE( |SUBSTRING_FROM: { SUBSTRING_FROM( VAL = TEXT SUB = 'ABAP' ) }| ).
OUT->WRITE( |SUBSTRING_AFTER: { SUBSTRING_AFTER( VAL = TEXT SUB = 'ABAP' ) }| ).
OUT->WRITE( |SUBSTRING_TO: { SUBSTRING_TO( VAL = TEXT SUB = 'ABAP' ) }| ).
OUT->WRITE( |SUBSTRING_BEFORE: { SUBSTRING_BEFORE( VAL = TEXT SUB = 'ABAP' ) }| ).
OUT->WRITE( | | ).

OUT->WRITE( |CONDENSE: { CONDENSE( VAL = TEXT ) }| ).
OUT->WRITE( |REPEAT: { REPEAT( VAL = TEXT OCC = 2 ) }| ).
OUT->WRITE( |SEGMENT1: { SEGMENT( VAL = TEXT SEP = ',' INDEX = 1 ) }| ).
OUT->WRITE( |SEGMENT2: { SEGMENT( VAL = TEXT SEP = ',' INDEX = 2 ) }| ).

在这里插入图片描述

  • TO_MIXED:下划线命名转驼峰,删除指定分隔符(默认是下划线),并将下一位字符大写,其他字符小写。
  • FROM_MIXED:驼峰变下划线,AbCdEf->AB_CD_EF
  • REVERSE:字符串反转。
  • SHIFT_LEFT:移除左侧字符,PLACES为移除个数,CIRCULAR则是将要移除的字符放到末尾。
  • SHIFT_RIGHT:移除右侧字符,CIRCULAR则是将要移除的字符放到开头。
  • CONDENSE:去除首尾空格。
  • SEGMENT:使用分隔符SEP切分字符串,使用INDEX从切分结果中获取指定子字符串,INDEX从1开始。

总结

打完收工。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值