目录
场景1:是否只包含数字
方式一 CO 关键字
方式二 contains 函数+正则表达式
场景2:字符串1 是否 包含 字符串2
场景3:截取部分字符串
OVERLAY:参考字符串对空白字符进行填充。
输出:
获取字符串长度
字符串拼接
方式一:使用 CANCATENATE 关键字
方式二:使用 `
数字转换成字符串
字符串大小写转换
str1 CO '0123456789'
涉及关键字:CO,使用公式 str1 CO str2 。表示 str1 中 的每个字符 在 str2 中都能找到
REPORT ZREGEX.
PARAMETERS field TYPE CHAR10.
IF contains( val = field regex = '(d)+$').WRITE / '匹配成功'.
ELSE.WRITE / '匹配失败'.
ENDIF.*输入 1111 输出 匹配成功
*输入 111d 输出 匹配失败
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方法类似。查找字符串中是否包含指定的子字符串。
例如:yyyyMMdd格式的日期字符串 截取年份
方式一 :字符串+数字(数字):
其中第一个数字表示起始位置,括号中的数字表示截取的长度。例如:+0(4)就表示截取从第一个字符开始往右4个字符
REPORT ZABAP_STRING.DATA(lv_datum) = '20230202'.WRITE: / lv_datum+0(4).
输出如下:
使用场景:模糊查询时替换字符串中内的空格
使用公式: 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 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小时内删除。
留言与评论(共有 0 条评论) |