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开始。
总结
打完收工。