ABAP 字符处理,看这一篇就够了!!!

阅读: 评论:0

ABAP 字符处理,看这一篇就够了!!!

ABAP 字符处理,看这一篇就够了!!!

目录

场景1:是否只包含数字

方式一  CO 关键字

方式二  contains 函数+正则表达式

场景2:字符串1 是否 包含 字符串2

场景3:截取部分字符串

OVERLAY:参考字符串对空白字符进行填充。

输出:

获取字符串长度

字符串拼接

方式一:使用 CANCATENATE 关键字

方式二:使用   `  

数字转换成字符串

字符串大小写转换


场景1:是否只包含数字

方式一  CO 关键字

str1 CO '0123456789'

涉及关键字:CO,使用公式 str1 CO str2 。表示 str1 中 的每个字符 在 str2 中都能找到

方式二  contains 函数+正则表达式

REPORT ZREGEX.
PARAMETERS field TYPE CHAR10.
IF contains( val = field regex = '(d)+$').WRITE / '匹配成功'.
ELSE.WRITE / '匹配失败'.
ENDIF.*输入 1111 输出 匹配成功
*输入 111d 输出 匹配失败

场景2:字符串1 是否 包含 字符串2

DATA str1 TYPE STRING VALUE 'hello world'.
DATA str2 TYPE STRING VALUE 'hell'.IF str1 CS str2.WRITE:/ 'str1 中 包含字符串str2'

涉及关键字:CS,  公式 str1 ca str2 ,表示 str1 是否包含str2。

类比:与JavaScript中 String对象的includes方法类似。查找字符串中是否包含指定的子字符串。

场景3:截取部分字符串

例如:yyyyMMdd格式的日期字符串 截取年份

方式一 :字符串+数字(数字):

其中第一个数字表示起始位置,括号中的数字表示截取的长度。例如:+0(4)就表示截取从第一个字符开始往右4个字符

REPORT ZABAP_STRING.DATA(lv_datum) = '20230202'.WRITE: / lv_datum+0(4).

输出如下:

OVERLAY:参考字符串对空白字符进行填充。

使用场景:模糊查询时替换字符串中内的空格

使用公式:  OVERLAY c1 WITH c2.

       该函数对原字符串及参考字符串按字符逐一比较,若原字符串某位置字符值为空而参考字符串有值存在,则用参考字符串字符值进行取代。      

REPORT ZABAP_STRING.
DATA: lv_search TYPE String VALUE 'hello world',lv_palceholder TYPE String.
DATA lv_length TYPE I.lv_length = strlen( lv_search ).do lv_length times.CONCATENATE '%' lv_palceholder INTO lv_palceholder.
enddo.WRITE: / lv_palceholder.OVERLAY lv_search WITH lv_palceholder.WRITE: / lv_search.

输出:

获取字符串长度

使用函数 strlen 注意该函数括号内要空格

DATA: lv_search TYPE String VALUE 'hello world'.
DATA lv_length TYPE I. 
lv_length = strlen( lv_search ).

字符串拼接

方式一:使用 CANCATENATE 关键字

        CANCATENATE  a b INTO result.

        其中 a b 是变量或者字符串 result 是目标变量

注意事项使用CONCATENATE拼接字符串时默认会去除结尾的空字符,若需保留空字符则需要在结尾使用RESPECTING BLANKS关键字声明

 示例:

DATA:l_matnr      TYPE C VALUE '123456789       ' LENGTH 18,l_werks      TYPE C VALUE '8800' LENGTH 4,l_result(22) TYPE c.CONCATENATE l_matnr l_werks INTO l_result RESPECTING BLANKS.
WRITE: / l_result.
CONCATENATE l_matnr l_werks INTO l_result.
WRITE: / l_result.

运行结果:

方式二:使用   `  

        其中 ` ` 表示字符串 && 表示拼接变量

DATA(str) = `index_` && sy-index.

数字转换成字符串

方式一:声明 C 类型变量并赋值给 该变量

DATA str TYPE C .C = sy-index.

方式二:使用  `

        使用`` && + 变量模式

DATA(strss) = `` && sy-index.

字符串大小写转换

使用 TRANSLATE 关键字

公式:

      大写:TRANSLATE   lv_string  TO UPPER CASE

      小写:TRANSLATE   lv_string  TO LOWER CASE

例子: 

WRITE: / '字母大小写转换--start'.DATA: lv_string TYPE string VALUE 'hello world'.WRITE: / '转换前:',lv_string.TRANSLATE lv_string TO UPPER CASE.WRITE: / '转换后:',lv_string.WRITE: / '字母大小写转换--end'.

输出结果如下: 

本文发布于:2024-02-03 05:19:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170690876748908.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:这一   字符   就够了   ABAP
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23